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.