Update ckan-validate to pass through exit status.

This means that tests can examine the ckan-validate
exit value to tell if any files failed validation.
Merge pull request #39 from pjf/ckan_validate

Update ckan-validate to pass through exit status.
Move download functionality to CKAN.Net

Also, tests! Aww yis.
Implemeted `ckan update` and `ckan available`.

* Downloads CKAN metadata from github.
* Closes #33 (index all mods)
* Closes #34 (ckan update)

NOTE: This changes the format of the CKAN registry. You'll need to
manually delete it from your KSP/CKAN directory, lest you get
weird-ass errors.
Woohoo! `ckan install Whatever` now works!

Try this:

    ckan update
    ckan install kOS

Also includes a version class (closes #42).

This breaks the old install which can install from the cmdline.
We should fix that. :)
Allow the CKAN repo to be specified on the command line.

This is mostly useful for developers who wish to test their
CKAN-meta branches before merging upstream.

For example:

```
./ckan.exe update \
    --repo=https://github.com/pjf/CKAN-meta/archive/ModuleManager.zip
    --debug
```
Updated spec and schema to be in line with Debian standards

- `requires` is now `depends`
- `pre_depends` and `suggests` are allowable fields
- These are referred to as `relationships` in the schema
- Bundles are formally discouraged, as they may result in different
  installs if incorrectly packaged.
Updated ckan-validate to do more stringent processing.

We now consider it a validation failure if we have a field in our CKAN
file that is *not* mentioned in the schema.

Note that only top-level fields are checked with this update, but
that's still better than not checking them at all!
Documented special use fields and extensions.
Merge pull request #41 from pjf/ckan_update

Implements `ckan update` and `ckan available`.
Merge pull request #45 from pjf/set_repo

Install, update, available commands, plus custom repos.
Merge pull request #46 from pjf/schema_update

Update CKAN schema and spec, and more stringient validation.
`ckan show` no longer dies messily when mod not found.

Closes #47.
Cache the KSP gamedir in the registry.

Relates to GH #28.

Currently we just do this when we find the gamedir for the first
time. There's no way for the user to specify it.
Added --ksp= switch to override KSP directory on cmdline.

For #28.
Added `ckan config gamedir` to set the gamedir.

Closes #28.
Use IsKspDir() for --ksp switch.
Merge pull request #55 from KSP-CKAN/registry_28

Adds KSP directory setting, both cmdline and registry.
Merge pull request #51 from pjf/show_47

`ckan show` no longer dies messily when mod not found.
Add KSP version detection.

Closes #48.  (For now, we can get more fancy later if we want)