Resolved code consistency issue, improved Camera

Resolved code consistency issue, improved Camera

- Some code used addObserver, others addListener when implementing the
observer pattern. Code was changed to use addObserver.

- ControlledCamera was making redundant calculations per update cycle,
translation of world to screen is now cached.

Jeremy. Allen. Wildsmith