
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. Also removed some dead code which was unused.