Significantly simplify some code, and removes a lot of hacks.
Now, the proper way to get packages is from an HTTP repository.
The mkrepo.py uses the content of the old catalog.json to populate
a dds repository. This is also used in the test cases to spawn
repositories as test fixtures.
This is a large changeset that changes the way we store package
remote info. In these changes, package remotes are entirely
encoded in a single URL. This will help reduce complexity
down the road when multiple different remote types are supported.
The kind of a remote is specified by the URL's scheme, and the
URL parsing differs based on the scheme. For now, only git+http
and git+https are supported.
This comes along with a change to the format of the catalog JSON.
Remote information is now entirely encoded in a URL string.