NetKAN: Search more aggressively for .version files.

Previously, we'd only use a `.version` file if it was going to be
installed.

Now, we'll still check the installed files first, but will fall back
to using a lone `.version` file if it's the only one in the archive.

Eases #269.
Added Meta.ReleaseNumber

This gives us just the release, such as `v0.23` or `v1.2.4`.

Includes tests.
Added CkanModule.IsSpecSupported

- Includes tests.
- Altered `JsonSimpleStringConverter` to support all incoming strings.
  (Without this we choke on int -> Version conversion)
Refactor Version to use named captures

- No more magic number groups.
- More obviously correct.
- Already tested by existing version tests. :)
Modules throw an UnsupportedKraken if deserialised with the wrong spec.
Repo: Gracefully handle bad metadata/spec versions.

If we have validation errors with metadata, we just skip that file and
move on. This allows us to read from repos that have metadata intended
for future clients, while still being able to use the metadata for older
clients.

Closes #229.
Update Spec and Schema with new version schemes.

- We accept '1' as a special case.
- We still recommend '1' until we see v1.2 clients.
Fixed bug in null-handling in JsonSimpleStringConverter
Merge pull request #310 from pjf/version_refactor

Refactor Version to use named captures
Merge pull request #309 from pjf/269_avc

NetKAN: Search more aggressively for .version files.
Merge pull request #311 from pjf/229_metadata_version

Update how we handle CKAN spec version numbers