Added MoveableObject and refactored movement logic

The logic for handling movement has been removed from
AbstractCharacterController
and added to a new MoveableObject class.  Remaining work includes
refactoring the
collision handler classes to allow certain moveable objects to slide
(change direction)
when a collision occurs.