Merge in JP's change to fix audio stuttering with OpenAL.
fix warning: format '%x' expects argument of type 'unsigned int*', but argument 3 has type 'u8* {aka unsigned char*}'
small index generator optimiztions

- rewrite loops to not use divisions and multiplications
- remove warnings as the current implementations seems to be correct (ignore additional vertices)
[Android] 0.6 Release
[Android] Fix drawing on screen control setting being derpy at times.
[Android] On first run, open up the navigation drawer so people realize that there is a drawer.
[Android] Add default Android config file
Revert "fix warning: format '%x' expects argument of type 'unsigned int*', but argument 3 has type 'u8* {aka unsigned char*}'"

This reverts commit b9953f5d6a1f54b53198bf1bd2b59bac1a90425b.
Warning fix.
[Android] Open drawer if there isn't anything in the game list, instead of on first run.
InputCommon: Split Device stuff out

The ExpressionParser needs this to be out of here to prevent issues
with cyclic references.
InputCommon: Add a new ExpressionParser to replace the old hack language

This contains a new, hand-written expression parser to replace the old
hack language based on string munging. The new approach is a simple
AST-based evaluation approach, instead of the "list of operations"
infix-based hack that there was before.

The new language for configuration has support for parentheses, and
counts "!" as a unary operator instead of the binary "NOT OR" operator
it was before. A simple example:

  (X & Y) | !B

Explicit device references, and complex device names ("Right Y+") are
handled with backticks and colons:

  (`SDL/0/6 axis joystick:Right X+` & `DInput/0/Keyboard Mouse:A`)

The basic editor UI that inserts tokens has not been updated to reflect
the new language.
ExpressionParser: Add support for the add operator

Use "+" instead of "^" this time.
ExpressionParser: Support bare words for simple control names

Using backticks for all control names can get a bit grating,
so support "A & B" instead of requiring "`A` & `B`".
InputConfigDiag: Update for the new expression language

Modify the buttons and editor interface for the new expression
language, like the new op name for add, the new device name syntax,
and add new editing features, like simple selection behavior on
unary ops.
InputConfigDiag: Give the input text field a monospace font
InputConfigDiag: Use "..." for complicated expressions

The full expression is quite often too big for a simple button
label, so encourage people to use the full editor to edit it.
ExpressionParser: Fix delimiter scanning

We need to make sure we eat the delimiter, otherwise we'll notice
the colon / backtick and think it's either a new control or part
of the control name
Core: Update default bound controls for new ExpressionParser
Merge branch 'expression-parser-fixes'