CPPBaseWorld and engine implementations/cleanup

CPPBaseWorld implementation is (mostly) complete
Entities are added at the end of frame, Worlds are changed at end of
frame.
Worlds/Entities are auto cleaned up if flagged.
Worlds/Entities only drawn/updated if active, visible, etc.

TL;DR Implementation of the engine is much cleaner and polished.