Each component of the kernel creates an instance of a complex object with a dedicated factory.
The agent, context, and space repository are created with factories.
This approach enables more flexibility, and more independent unit tests.
Fire the events SpaceCreated and SpaceDestroyed (issue #40).