Gamepad

Refactored gamepad into it's own module.  Includes initial tests.