Huge refactor of entity system.

This branch started with humble ambitions, but became the start of a huge refactor.

Entities now based on an Entity base class.
Next steps
* Make Player based on Entity as well, for consistency and ease of cross-entity interaction.
* Get the status effects stuff working.
* Extend Summoned and Enemy base classes into more specialized NPCs.