Linting and Downloadagent

In this commit I finally discovered how wonderful linting can be. I should have
created a seperate branch for this, but alas, I didn't. Practically every
module has needed changes to appease the linter.

DownloadAgent also finally has a progress API that works. The DownloadProgress
object contains a list. This list will have status updates appended to it. Any
code that requires a progress counter should have this passed into it.
cleanup
fix docstrings up