Refactor input config load and saving.

Avoid very large structs (with tons of redundancy). Decouple prefixing from binds
to allow autoconfig later.
Input config refactor.

Move LUTs to input_common.c. Make LUTs public.
Let retroarch-joyconfig write autoconfigs.
Prompt user to "reset" joypad state.

Many joypad drivers have "stale state" lying around and need
some events to be fired to normalize. Broken initial state will
break joypad configure like this.
Also dump input_driver used in retroarch-joyconfig.
Clarify when buttons are initially pressed.
Add joypad autoconfig support.
Don't spam OSD messages for autoconfigure.
De-autoconfig lost drivers on reinit.
Fix Win32 build.
Fixups iOS joypad driver.
Clean up some ifdefs.
Can toggle devices in run time on PC.

Drop some input options if set_keybinds isn't implemented. Only adds
confusion.
Refactor out disk swapping functions.
Refactor libretro device type handling.

Show devices in RGUI.
Can change libretro device on the fly.
Add basic disk swapping to RGUI.
(RMenu) Initial 'doing menu toggle' without delay timers
(RARCH_CONSOLE) Build fix
(RMenu) Menu pop/push stack refactors