Controller info libretro API

This removes the last bit of SNES-specific cruft in the libretro API.
The idea is that cores can now expose which devices are supported in retro_set_controller_port_device().

I've also added support for RGUI to toggle between the device types. Also added a "generic" --device CLI option in case that's needed.

Note: I've started to use an automatic trailing whitespace killer in vim, so some unrelated stuff is changed as well.