Merge branch '175_relationship_resolver' into unofficial_release

* 175_relationship_resolver:
  Fix RelationshipResolver to examine provides as well.
WIP: Stricter checking on the async downloader.
WIP refactor of ModuleInstaller and NetAsyncDownloader

NOTE: This *doesn't* yet handle user cancellations sensibly.
NOTE: Nothing checks for the DownloadErrorsKraken!
fixed #279 by making sure the modname is not empty. We might need to throw some Krakens from ModuleInstaller when a precondition on an argument is breached.
Increased NetAsyncDownloader bandwidth sample window to 3 seconds
Merge pull request #298 from christianvdstap/cvds_279

fixed #279 by making sure the modname is not empty. We might need to thr...
Merge pull request #299 from AlexanderDzhoganov/master

Increased NetAsyncDownloader bandwidth sample window to 3 seconds
CmdLine users now get continuous feedback on download progress.

This is a fabulously easy change. Works under Linux, and I expect
works everywhere.

I think we want to officially deprecate the User class at some
point. Callbacks are ending up being a much nicer way to signal
information, and they also aid in testing (as we can ensure
operations call back with the right strings).
Merge remote-tracking branch 'origin/master' into async_refactor

* origin/master:
  Increased NetAsyncDownloader bandwidth sample window to 3 seconds
  fixed #279 by making sure the modname is not empty. We might need to throw some Krakens from ModuleInstaller when a precondition on an argument is breached.
Simplified use of NetAsyncDownloaderDownloadPart
NetAsyncDownloader: Better locking, error throwing.

- Locks are now private
- Fewer NREs on cancellation
- Cancellation throws a CancelledActionKraken
Merge branch 'better_cmdline_downloads' into async_refactor

* better_cmdline_downloads:
  CmdLine users now get continuous feedback on download progress.
GUI now handles CancelledActionKraken.

Also a bit more logging and documentation.
Merge pull request #305 from pjf/async_refactor

Refactoring of NetAsyncDownloader and ModuleInstaller
Removed erroneous documentation.
Merge branch 'async_refactor'

* async_refactor:
  Removed erroneous documentation.
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. :)