WIP: Fix GLSL renderer.
Set device category for MIDI controllers.
Fix some usability issues in the controller preferences page. Bug #1304964

* Use a tab widget instead of a toolbox.
* Move troubleshooting link to the support link list.
* Move MIDI learn button to controller info header.
* Add more edit triggers to the input/output mapping tables.
Vinyl seek should always be seekExact
Merge branch 'master' into DJO-hacks-trunk
Avoid hammering ->get() calls in wspinny.
Remove unnecessary check
Merge pull request #231 from ywwg/spinny-avoid-gets

Avoid hammering ->get() calls in wspinny.
Add a reset to defaults button to the Preferences chrome.

* Remove all individual page reset buttons.
* Add reset logic to Library page.
* Add TODOs to write reset logic for interface, modplug, recording, shoutcast
  and vinyl control pages.
Add preset author explicitly to preset info tab.

Ideally we should make these editable so that a user could create a mapping in
the GUI and then hit the Export button to save it.
Switch to traditional key notation as default.
Select and scroll to new mapping row when adding. Fixes Bug #1308204.
Disable learnign wizard button if controller is not mappable.
Move controller info into a Controller Setup tab. Bug #1304964.
Don't disable the setup tab if the device is not open.
Remove reset to defaults button from crossfader dialog.
Add an Apply button that only applies the current preference page. Fixes Bug #1308552.
Fix build -- oops.
Remove unused force-apply code in DlgPrefSound.
Preferences>Interface: `Fullscreen`>`full screen` like we use in the options menu