Refactored controller code

- Added abstract Controller class (interface)
- Added Mouse and Keyboard classes implementations, and templates for
Gamepad and Touchpad
- Made WatchController implement the Controller interface
- Refactored Player to receive a controller (instead of a watch
controller id)
- Put code in Game.__init__() to initialize controllers (based on DEBUG
flags)
- Enabled collisions
- Added DEBUG modes for testing with the keyboard, mouse, and with two
players
- Added TODOs