Large refactor. Split out entity management. Split component collection into two for performance reasons.
Started rebuilding the benchmarks
finished fleshing out benchmarks. Added get*() methods for getting a singular component