Made the controller customizable.

This enables the end user to install their own handlers for keyboard and
mouse input.
Merge pull request #67 from freakboy3742/customController

Made the controller customizable.