* inputCore.InputGesture: add an executeScript method which executes the given script passing it this gesture, by using scriptHandler.executeScript. this is implemented to allow Gesture subclasses to perform actions before / after script execution. (#11478)
* scriptHandler._queueScriptCallback: call Gesture.executeScript rather than executeScript directly.
* keyboardHandler.KeyboardInputGesture: track the number of times this Gesture instance is sent as input onto the Operating System (I.e. how many times Gesture.send is called). this is recorded on a sendCount instance variable. This is useful to see if a script has actually sent its gesture on or not.
* keyboardHandler.KeyboardInputGesture: implement executeScript, which after executing the script normally, checks to see if the gesture was never actually sent, and that the gesture's modifiers could possibly perform an OS action (such as an input language change) and if so then sends key down and key up for the special VK_NONE key. This code was moved from internal_keyDownEvent. Having this code execute from the main thread as opposed to the keyboard hook, stops a deadlock with the ignoreInjection hook and stops deliberate reentrancy of the keyboard hook.