D3D: Implemented context state caching

This avoids most of the redundant API calls.
D3D: Removed cull mode changes for lines and points

Fixed include order and whitespace
D3D: StateManager m_current and m_pending are now value-initialized
D3D: Fixed StateManager member function name case
D3D: Fixed debug validation error

A texture was still being bound when OMSetRenderTargets is called.
State manager resource cache must be flushed to unbind it.
This fixes The Last Story cut scene rendering.
FifoRecorder: Use std::vector for m_Ram and m_ExRam

No need to delete/recreate the arrays every time a new recording happens. Just zero it out.
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.
FIFO: allocate slightly more for SIMD vertex loader overreads

May fix crashes in rare cases.
Merge pull request #1676 from FioraAeterna/allocatefifo

FIFO: allocate slightly more for SIMD vertex loader overreads
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).
Merge pull request #1670 from lioncash/array

FifoRecorder: Use std::vector for m_Ram and m_ExRam
Merge pull request #1503 from kayru/d3d_optimization_cache

D3D: Filter redundant API calls by caching state in StateManager
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.