Use of metaclass python to override __init__ and instantiate the class later on
From the looks of it you have objects that you only want to partially create, when you create them the first time.

To do this you can use functools.partial:

quail.run(
    partial(quail.SolutionPacked, path='Allum1'),
    partial(
        quail.Installer,
        name='Allum1',
        icon='icon.jpeg',
        binary='allum1',
        console=True
    ),
    partial(
        quail.builder.Builder,
        partial(quail.builder.CmdIcon, 'icon.ico'),
        partial(quail.builder.CmdZip, solution_path, 'solution.zip')
    )
)


Yeah, this isn't really that attractive. However it is what you want.

And so you can use a metaclass to perform this action automagically.
I'd remove the _get_instance stuff from your Egg, remove InstanceEgg and use a partial call.

from functools import partial


class PartialInit(type):
    def __call__(cls, *args, **kwargs):
        return partial(super().__call__, *args, **kwargs)


@six.add_metaclass(PartialInit)
class Test:
    def __init__(self, a, b):
        print('init {} {}'.format(a, b))


t = Test('a')
print('Made t: {}'.format(t))
t('b')