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.
Merge branch 'joypad-autoconfig' of github.com:Themaister/RetroArch into joypad-autoconfig
Merge branch 'master' into joypad-autoconfig
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.
Merge branch 'master' into joypad-autoconfig
Merge pull request #189 from Themaister/joypad-autoconfig

Joypad autoconfig.