port gamepad API

Still haven't tested it. Preliminary thoughts?
`item->index == gamepadEvent->index`