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).
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.