Updates related to the Entity.update functionality

- Entity.update is now abstract
- Entity.update now takes a reference to the world (needed by
controllers)
- addController public method and updateControllers protected method
added to Entity