Move methods from PlayerCharacter to GameCharacter

Move various methods from the parent type to super type to ensure NPCs
implement them
Create interfaces for game controllers
Add missing annotation to GameControllerImpl
Merge pull request #24 from philipwhiuk/hotfix-controllerAnnotations

Fix controller annotations.