Across-the-board refactors.
Across-the-board refactors.

Minor changes to apollo.hpp to reflect file changes.
Removed ComponentArray to migrate to a generic Storage model.
Refactored Entity to be index-based.
Created EntityManager to handle creating and recycling new Entities.
Created MapStorage, a "trivial" implementation of the new Storage model. Also created its respective iterators.
Removed ResourceAccessor's implementation in preparation for its refactor.
Changed ResourceSubscription to use std::unordered_set instead of std::set.
Removed ResourceWrapper as any type is now allowed to be a resource.
Created Storage as a generic interface for component storage implementations. Created read/write iterator interfaces as well.
Refactored System to be simpler.
Removed the TypeManager object.
Refactored Types to be statically determined instead of attached to a TypeManager object.
Deleted most of the World implementation in preparation for refactor.
Minor other changes to tests and other files.

thealexhoar/Apollo