Make HatState an enum

Expose and use the low level joystick hat state constants.
Add joystick example
Wrap up most of the game controller API
Derive Show for ControllerAxis & ControllerButton
Add controller example