Support SurroundingText ibus capability
IBus has a special event to delete surrounding characters.
Previously we didn't support that event which forced the
IPA keyboard to send us a backspace instead. However I'm not sure
that all keyboards would work, so it seems safer and cleaner to
support surrounding text.

Change-Id: I51b8aa40d39ec3111b68d505cf0b7b10c7f7d0f3
---
 .../Keyboarding/IbusDefaultEventHandlerTests.cs    | 64 +++++++++++++++++++++-
 .../Keyboarding/IbusKeyboardAdaptorTests.cs        |  2 +
 .../Keyboarding/Interfaces/IIbusEventHandler.cs    |  9 +++
 .../InternalInterfaces/IIbusCommunicator.cs        |  5 ++
 .../Keyboarding/Linux/IbusCommunicator.cs          | 13 ++++-
 .../Keyboarding/Linux/IbusDefaultEventHandler.cs   | 37 +++++++++++++
 .../Keyboarding/Linux/IbusKeyboardAdaptor.cs       |  2 +
 7 files changed, 129 insertions(+), 3 deletions(-)
Improve keyboard handling
When using other applications (e.g. gedit) with ibus keyboards one
can notice that with some keyboards the pre-edit text doesn't get
deleted when the application/field loses focus. This is necessary
for keyboards that don't show a pop-up window, e.g.
Danish-post(m17n). Otherwise it is impossible to type any
character that ends up as pre-edit text without typing another
character that commits the pre-edit. For other keyboards like
Chinese(Pinyin) it is acceptable and expected that the pre-edit
text gets removed when the application/field loses focus.

Unfortunately there's no way to ask IBus if a keyboard shows a
pre-edit window. However, it seems that (almost?) all keyboards that
don't show a pre-edit window set the underline attribute to the
value 'None', so we use that to distinguish between the two kinds
of keyboards.

Change-Id: I96ffcf0e7b075e49f2b94038222bbd3fa2b58c5b
---
 .../Keyboarding/IbusDefaultEventHandlerTests.cs    |  74 +++++++++------
 .../Keyboarding/IbusKeyboardAdaptorTests.cs        |   4 +-
 .../Keyboarding/Interfaces/IIbusEventHandler.cs    |  26 +++++-
 .../InternalInterfaces/IIbusCommunicator.cs        |   4 +-
 .../Keyboarding/Linux/IbusCommunicator.cs          |  11 +--
 .../Keyboarding/Linux/IbusDefaultEventHandler.cs   | 104 +++++++++++++++++----
 .../Keyboarding/Linux/IbusKeyboardAdaptor.cs       |   8 +-
 lib/commonMono/ibusdotnet.dll                      | Bin 20992 -> 25600 bytes
 8 files changed, 163 insertions(+), 68 deletions(-)
 mode change 100644 => 100755 lib/commonMono/ibusdotnet.dll
Don't crash if a Linux keyboard uses a locale unknown to Mono
Bump version number back to where it belongs
Stop elements in the fw namespace under special from being duplicated

This fixes LT-15048
Allow reading of windowsLCID field without mapping the namespace

mapping the namespace for external extensions had undesirable results
Adding .gitattributes and .gitignore files