Adding mouse movement support

The user can now move the player character by clicking on an unoccupied
tile. To enable this, the Camera exposes the ability to reverse its
transformations and determine where inside the scene a user actually
clicked (since the Camera moves the scene around).

While doing this, renamed DEBUG_NPC to DEBUG_ACTOR (since a lot of the
NPC components are generic and used to drive the PlayerCharacter too
now). Also fixed up the PlayerCharacter's speed and velocity
calculation to be the same as the one in Actor_MoveOrder.
Updating documentation.

Filling in some gaps in the documentation of classes in the code base.