Make closing of `Downloader`s more concise.
NOTE: This is only a WIP branch in so far as I haven't tested it, as it was done on the train before my holiday. The code is final though, so if people are happy it works, please merge.
The base Downloader
class now wraps the InputStream
returned by
any child classes, in order to notify the child class when that stream
is closed. This prevents each child class having to figure out a way
to be notified of this.
This helps keep the API concise, because close handling is dealt with
without the need to add any public methods to the Downloader
class
hierarchy.
Also removed some dead code which was unused.