Allow custom xkb keyboards to be displayed

Advanced users can define custom Xkb keyboard layouts for otherwise
unsupported languages/scripts.  Without this change, only the standard
system keyboards could be seen in our programs even though the system
could choose them through its standard setup software and input language
applets.
Fixes text truncation on language name in ConfigTool Input Systems tab

Bugfix for WS-51 where letters with descenders like "g" were cut off
in Linux.
Fix keyboard layout loading for custom keyboards
Merge pull request #55 from sillsdev/fixWS-51

Fixes text truncation on language name in ConfigTool Input Systems tab
More fixes for listing custom xkb keyboards on Linux
Merge pull request #53 from sillsdev/FixForCustomXkbKeyboards

Allow custom xkb keyboards to be displayed
Temp: Work-around crash in WeSay with GeckoFx 29

During a backup, a LogBox is created and the Text property is
accessed during ctor chain.  It seems like there has always been an
C# Null Pointer Exception here, but it now it causes a SIGSEGV in
xulrunner29.  This change will keep the C# Null Pointer Exception
from happening and allow WeSay to work while we figure out the
problem with xulrunner29.
Merge pull request #56 from sillsdev/WorkAroundCrashWithGeckoFx29

Temp: Work-around crash in WeSay with GeckoFx 29
Force a new writing system id when duplicating

Duplicating an existing writing system in the UI, then deleting the
duplicate would result in deleting the original writing system since
the duplicate has the same id with a simple Clone based duplication.
Merge pull request #57 from sillsdev/PreventDeletingByDuplicating

Force a new writing system id when duplicating
Replace exiftool with taglib#

Main reason is that the previous fix for non-ascii characters in
filenames, involving pumping the data into standardInput and reading
from standardOutput, was crashing for many (typically larger) images.

The new code is cleaner, shorter, doesn't require starting a new
process, backwards compatible, and more likely to be cross-platform.

As a bonus two previously disabled unit tests now pass, and it seems
to be picking up more pre-existing metadata.

One downside is that current releases of programs built using the old
exiftool version will not see changes made to the copyright owner field
made by the new version. Details are in the Metadata class comment.

Note that we are using (for now) a custom build of taglib#. It does not
depend on a 3rd party decompression library and copes with metadata
stored in the way the ArtOfReading uses (ImageMagick).