Fix a settings saving crash observed in the wild

* If the SerializedValue we are given comes up null when saving
  a string then save out an empty string instead of crashing.
Correct PalasoUIWindowsForms.Tests.csproj to have 2-space tabs

Visual Studio generates this file with 2-space tabs, so that is
what we need to have in the repo.  Additionally, before this
change, the indentation was a mix of tabs and spaces.
Add ability to block by acquiring and releasing a unique token
Use a lock file rather than a named mutex

Making named mutexes work in mono requires enabling shared memory
which is not an ideal solution.
Merge pull request #121 from andrew-polk/master

Correct PalasoUIWindowsForms.Tests.csproj to have 2-space tabs
Merge pull request #120 from sillsdev/FixSettingsCrash

Fix a settings saving crash observed in the wild
Various improvements based on review feedback
Merge pull request #122 from andrew-polk/BL475_BlockOnToken

Add ability to block by acquiring and releasing a unique token (BL-475)
Correct Palaso.csproj to have 2-space tabs

Visual Studio generates this file with 2-space tabs, so that is
what we need to have in the repo.  Additionally, before this
change, the indentation was a mix of tabs and spaces.
Merge pull request #124 from andrew-polk/master

Correct Palaso.csproj to have 2-space tabs
Fix enforcement of single instance on Linux
Merge pull request #125 from andrew-polk/FixLinuxSingleInstance

Fix enforcement of single instance on Linux
Fix crash on exit in error reporting

When we get a crash while the application exits (e.g. from the
finalizer method) it's quite possible that the ControlOnUIThread
control already got disposed, so we can't use it anymore.

Change-Id: I93611651663b8afb473063ddf078be8a5a65e682
Merge pull request #126 from ermshiperete/ErrorReporting

Fix crash on exit in error reporting
Add Wasta 14 keyboard handling via IBus alone

When IBus is used in Wasta 14, it becomes the sole keyboard handler.
(Wasta 14 is based on Mint 17 using Cinnamon.)
The IBus settings list both XKB and IBus keyboards together, and the
IBus code  handles switching keyboards the same way for both.  Too bad
it's a different approach than Ubuntu took with Saucy/Trusty.