Refactor Linux keyboard adaptors for base class

Extract a base class to share between the CombinedKeyboardAdaptor
used by Trusty and the CinnamonIbusAdaptor used by Wasta 14 (aka
Mint 17/Cinnamon).
Davy, in the context of a set method of a C# property, 'value' is a keyword, not a variable name. We can't change it.