Always compile for 'any' arch, with full debugging.

Closes #207.
The `STABLE` token can now be tested by #ifdef for stable relases

This allows us to do condiitonal compilation of code, so unstable
features can be removed from the compile.

- Aids in #302.
- Includes tests that fire when on stable branches.
- Stable/Unstable is now included in version information.
  (Eg: GUI title bar, or `ckan version`)
Stable constants check are now travis pull-request aware.

As long as it looks like we might merge into a stable branch, we
do our stability checks.
Provide and use zip validation methods for the cache.

- `IsCachedZip` and `GetCachedZip` test zipfile integrity.
- Existing code modified to prefer these functions.
- NUnit tests included.
- Tested by manually truncating files in my cache directory, too. :)
- Closes #242

The reason I don't have all cache functions testing zipfile integrity is
because we may wish to store *other* things in the cache in the future
(eg: mod thumbnails).

Many thanks to @techman83 for providing test data.
Modestly refactor KSP and ScanGameData

- `ksp.Registry` and `ksp.RegistryManager` make available the
  registry and manager respectively.
- `ScanGameData` uses transactions.
- `ScanGameData` has docs, and is slightly less ugly.

SCD would be better off *in* the registry, but this is meant to be
part of a bugfix :)

Prelude to #87.
Tests for KSP.ScanGameData

Shows the presence of #87, and hence failing. :)
.dll files are now detected, regardless of case.

Fixes #87.

Causes tests in f8bd7841c9da594ac85ee12faf8bddbf76a61fe8 to
pass! Huzzah! :)
Merge pull request #316 from pjf/302_arch_fixes

Always compile for 'any' arch, with full debugging.
Merge pull request #317 from pjf/build_conditionals

Introduce and check for 'STABLE' build constants.
Merge pull request #318 from pjf/242_zip_verify

Provide and use zip validation methods for the cache.
Merge pull request #319 from pjf/87_registerdll_bug

Detect .dlls regardless of case