Tests: Added cmdline version number checks.

This is the start of a glorious future of testing the cmdline client
extensively.

Runs in travis.
Travis tests: Fix missing dependency.
Fix tagging of CKAN.dll version numbers, and test framework.

- We now always build using `bin/build`
- Our build system now injects the version number directly into code.
- Fixed a bug in handling future spec versions.
- Tests in t/*.t will be run
Travis and prove are now more accepting of dev builds

Beacuse travis does a shallow clone of the repo,
`git describe` may not be able to find a tag. That's cool now,
we just mark it as a dev build and keep going.
Merge pull request #312 from pjf/moar_tests

Test and build tagging improvements.
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
Marking `master` (aka development) as unstable.

- Removes the STABLE token in the .csproj files.
- Part of #302.
- Travis will remind us to put these back any time we make
  a stable branch in the future.
Merge pull request #321 from pjf/302_split_dev_and_stable

Marking `master` (aka development) as unstable.