Refactor the tests into their own directory.

Run these with a WD of either tests/ or / and it'll work, since
tests/__init__.py sets up the search path accordingly.

This is a cherry-pick for merging with feature/new-patcher in a PR.
Revert "Removed unused legacy downloadManager class"

This reverts commit d1327e50c0327077c0adca8af3cbcac7d95140c3.