Compactify generated UID generator assembly and generally cleanup code by storing tev stage hash values in a struct.
Optimize shader uid checks by checking the number of uid values which are actually used.
Compactify VertexShader uid struct.
PixelShaderManager: Revert code introduced mainly in revision 0fdeb81038d9.

The shader constant usage profile functionality is still buggy and the code using it wasn't ever meant to be merged to master.
ExpressionParser: Don't crash when we can't find a device
ExpressionParser: Add support for simple barewords control names

If an expression can't be parsed normally, we then look to see if it's a
simple device name. This keeps backwards compatibility with simple input
ocnfigurations, where people just used the Detect button.
Revert "Core: Update default bound controls for new ExpressionParser"

This reverts commit 54e1b58199e9f11e9d8015777ebfcd53c86d485d.

We now support barewords control names, so use those instead.

Conflicts:
	Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp
Merge branch 'expression-parser-barewords'
DInputJoystick: Always exclude XInput

Yeah, yeah, it's possible that some guy would try to build DInput
without XInput, but they're crazy, and I doubt it would have worked
since the header file mess was so fragile anyway. Always exclude
DInput devices when we don't have XInput.
DInputJoystick: Fix compile

Whoops. MSVC++ messed up somehow and didn't tell me it didn't work
locally.
fix opengl debug build on win32
[Android] Support clicking on games in the folder browser to add the folder currently in. Mostly for derps that keep trying to run the game from the folder browser.
ExpressionParser: Search for control names first

Otherwise, valid control names like "Cursor X+" would be incorrectly
tokenized as "`Cursor` `X` +", causing the parser to first abort trying to
find a control named `Cursor` rather than aborting with invalid syntax on
the bad binop.

We could also do this by resolving devices lazily, but since simple
control name bindings are going to be 90% of usecases, just look for these
first.
Finishing touches.
Merge branch 'shader-uids-awesome-after-hours'.
InputConfigDiag: Put the colon after the device name

Oops. The dialog accidentally generated the wrong syntax for
this one.
VertexShaderGen: Fix a potential bug where vertex shader uids don't change when pixel lighting is toggled.
PixelShaderGen: Store early_ztest as part of shader uid.
PixelShaderGen: Fix a small early-ztest related bug.
InputConfigDialog: Don't show "..." for complicated expressions

Just show the actual expression. We need to do a bit of mangling
here as wx has no way to turn off mnemonics parsing, so do that
as well.