Improved entities

Entities can now be created/destroyed with the EntitySpawner class,
allowing components safe access to creating/destroying entities. Also
added cleanup to singletons.