Added support for SDL_GameController with fallback to default method.

Alright I've worked a bit on this and rewrote it a couple of times and I think it's in a presentable state now. If it doesn't know the controller it will just fall back to good old SDL_Joystick, and custom bindings in ~/.config/mkxp will always take priority over the SDL_GameController ones.

I've included the gamecontrollerdb.txt sourced from https://github.com/gabomdq/SDL_GameControllerDB/ to be baked into the executable for now but it could be made into a config file that is loaded on startup instead or in addition to the baked in one.

you can pass custom bindings vis the SDL_GAMECONTROLLERCONFIG environment variable.

At the moment it won't use the Axis part of SDL_GameController at all, since it really isn't all that helpful.