Extract collision handling from AbstractCharacterController

Created CharacterCollisionHandler which inherits from AbstractCollisionHandler. CharacterCollisionHandler is then inherited by our player's and enemies' collision handlers.

The appropriate *CollisionHandler class should be added as a component to any game object we want to be able to react to or be affected by collisions.