Base Gecko Control boxes off of a base class

One of the comments from the initial Gecko implementation review
was that all of the code should be derived from a base class to
avoid code duplication.  This implements that change.

GeckoListBox.cs is not included yet because it is not used yet
and is undergoing major changes to use it.  When it is checked
in next, it will use the same base class.

Change-Id: I0945603ab777968d434b1016b60cc17a31e13b93
Documentation change

Updated README.ForDevelopers to include setting up a
windows dev machine including build for Installer.
The beginning of changes for Welcome.htm

Change-Id: Ibfc730f88833a5ac33bfb96a29edd2328f237b18
Add mdb files and launch apps with --mono

In FieldWorks, mdb files are included to get better stack traces
when exceptions are reported.  The apps are also started with
"mono --debug".  We are going to follow suite.

Adding the mdb files adds 1MB (from 11MB to 12MB) to the size of
the .deb package.

Change-Id: I5b27929b538298aec23332f2045d891bc1fe92d6
More cleanup of Installer task

1) deleted added Components (not needed), edited old ones
2) updated documentation

Change-Id: I159f1dc0cf15480a4170fdd18fd99a2b6cc9db27
Strip out cruft from TestBuild.bat ... oops

Change-Id: Ib8acd14a21166244cba645bdab88121f2a16ec53
version 1.5.4

Change-Id: I0eb1df8e4fd23be9562ac492ba212545fbe0bb68
Prevent crash in GatherSemanticDomain

If an item was selected from the list box
in GatherSemanticDomain and multiple entries
matched the lexical form, a crash could result.
This was first of all because the array saving
the entry that matched the form and meaning was
overwritten with each iteration of the loop so
that the sense was not saved unless it was the
last entry processed.  The code crashed because
those accessing the saved list assumed there was
at least one entry populating the list.

The change first of all only instantiates the
list being created the first time through the
loop.  Checks were also added to the crash
location to ensure that it contains an entry
to be processed before it attempts to access
the entries.

Change-Id: I45a63c4c1095b7dae9376e6447ac8b6cce6b160f
Make vagrant-cachier plugin optional

There is a bug in the Windows version so that the apt_lists are saved
with the date of the cache file creation instead of the date they
were fetched from the repo.  So you can't update packages.  I have
submitted an issue to the vagrant-cachier repo.
https://github.com/fgrehm/vagrant-cachier/issues/106

Make the use of vagrant-cachier optional so that that vagrant creation
of VMs on Windows can get updates from the APT repos.

Change-Id: I14f05527852ba60c54df4e8caebd6a4b396ccba6