Hide EntitySet implementation details

Update EntityDB to keep it's own global EntitySet as well. This hiding
now lets me ignore the actual underlying implementation of how I'm
storing Entities while working elsewhere.
Entity Sets can delete entities from their internal lists
Delete entities and clean up appropriately

Entities can now be deleted from the system and the appropriate
Listeners will be told to clean up for this Entity if any such clean up
must take place.

Along with this set up an Update call to EntityDB which will do an
initial run through of any dirty Entities at the beginning of each frame
to make requested changes from the previous frame.