add 'repeat' field to KeyboardEvent, set for auto-repeat key events
ignore repeated key events during key binding capture
make KeyBinding fields private; use Enabled() and From*() methods instead
merge left and right modifier keys in KeyBinding code

This means that bindings can only specify a general modifier (CTRL, SHIFT
etc), not a side-specific modifier (LCTRL, RSHIFT etc), and when matching
SDL events, either modifier can be used.
in KeyBinding::Description(), join modifiers with " + "

Translation change: modifier key names should no longer have whitespace
included in the translation; they should also be in title case.
when capturing key bindings, ignore modifiers applied to modifiers

i.e., don't allow "Ctrl + Left Alt" as a binding. Modifiers can still
be applied to non-modifier keys (e.g., "Ctrl + T"), and modifier keys
can still be captured as bindings on their own (e.g., "Right Shift").
keep joystick events connected to BindingCapture after capture has happened
Merge remote-tracking branch 'johnbartholomew/issue-2523'