port gamepad API

Still haven't tested it. Preliminary thoughts?
The header has these as `EMSCRIPTEN_CONTROLLER_BUTTON_DPAD_*`