OGL: Use a fixed VAO for attributeless rendering.

Instead of abusing whatever VAO is previously bound, which might have
enabled arrays.

Only used in one instance currently, which fixes a crash with older
NVIDIA drivers.
DolphinQt: Silence -Wshadow warnings.
Added GameCube Adapter support.

The libusb driver must be installed on the adapter (e.g. zadig can be used to install the driver in Windows).  GameCube pad controllers are supported and will override the current input device assigned to the port.  GameCube controller buttons are auto-configured and cannot be re-assigned.  Rumble is supported.  Hotplug is supported while playing a game.  If a controller is unplugged from the adapter, Dolphin will fallback to using the host input device on that port.  If a port on the adapter is unused, Dolphin will use the host input device for that port, allowing a mixture of host input devices and controllers connected to the adapter.

The adapter support can be disabled in the Controllers config if the OS driver is preferred (allowing the pad buttons to be reconfigured).

One adapter per system is supported.
Retrieved the endpoint addresses of the GC Adapter via the descriptor.
VolumeHandler: Return success value
Fixed wireless GC controller detection.
Made the controller update thread-safe.
Added pad origin to wired and wireless pads only.
Moved the GC Adapter processing under "Standard Controller" as it appears the adapter does not work with controllers other than the standard controller (pads, bongos, some dance mats).
OGL: Properly reset the attributeless VAO.
OGL: Bind the attributeless VAO before EFB copies.

Fixes crashes in Zack & Wiki using an older NVIDIA driver.
OGL: Move attributeless VAO creation to Init.

This way we won't trash an existing bound VBO by mistake.
OGL: Ensure a VAO is bound for all attributeless.

Unfortunately, some of these cases are not well tested, because I don't
know how to reproduce them.
Fix hires texture path.
Merge pull request #1682 from JosJuice/volumehandler-return

VolumeHandler: Return success value
Enable block-linking with MMU.  Blocks that cause an ISI exception are not linked.
Merge pull request #1684 from skidau/mmu-blocklink

Enable block-linking with MMU
Merge pull request #1679 from rohit-n/shadow-qt

DolphinQt: Silence -Wshadow warnings.
Silence some -Wswitch-default warnings.
OGL: fix efb pokes
Merge pull request #1678 from skidau/GC-Adapter

Added GameCube Adapter support
Fix DSP CMPAR disassembly

Previously the two operand register selection bits were inverted, causing "CMPAR AC1, AX0.H" to be disassembled as "CMPAR AC0, AX1.H".

DSP RE is always fun: on the one hand Nintendo does a lot of stupid shit, so anything weird could be a legitimate bug of the UCode that is not supposed to make any sense. On the other hand, Dolphin *also* does a lot of stupid shit, so there's always that doubt.

Note: completely untested change - done with the GH text editor, just to show you how much I care :) . These operand descriptions are only used for disassembly, so no real behavior change is expected.