-Cleanup w/ class level comments
-Added register for components to allow assignment of bitid before
association of entity and component
-Remove entity returns the entity since it doesn't do memory cleanup.
-Changing around some parameters to clarify input expectations (ref
because we don't want null arguments, etc.)
-Separation of entity system and non-entity based systems (allow systems
to be updated without caring about new entities)
-use c++11 hash instead of boost