Merge pull request #94 from FAForever/fix/travisbuild

Nice simplification of the travis script. thanks. :+1_
Revert "Removed unused legacy downloadManager class"

This reverts commit d1327e50c0327077c0adca8af3cbcac7d95140c3.
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.
Initial version description
Add classdoc
Add ref,hash,repo to Version
Add has_version
Be consistent with assertions
More pythonic has_hex
Move test_version
JSON deserialization

Will parse first argument as json version object.

TODO: More error handling.
Only add known fields and verify version validity
Add equality
Better argument parsing
Use static from_json instead
.get() defaults to none
Support unix-style wildcards in trusted repos list

We compare the hostname + path to see if a url is trusted.