Timeout when typing char that does not exist

### Motivation

* _uia_type_string enters loop when trying to type a key that does not exist on the keyboard - UITextFields only_ #310
* _keyboard_enter_text into field with UIKeyboardTypeDecimalPad does not finish_ #555

This PR addresses #310 and #555 by adding a timeout to `uia_type_string`; cannot type more than 15 seconds.  I added a options `:timeout` argument to `keyboard_enter_text` to allow users who need to type exceptionally long pieces of text.

This is 0.12.0 release because it changes keyboard_enter_text public API.

I also added some tests to get a better understanding of these two issues.

* _Typing backslashes on iOS 8 iPad undocks the keyboard. Regression on #284_ #574
* _Typing backslashes on iOS 8 iPad keyboard inserts "." instead of "\". Regression on #284_ #575