Change all files that import parse_requirements to use our own impl
Fix terminology confusion for package and requirement

The term `package` was being used in a lot of places where `requirement`
would fit better. Also, a couple `package` variables were renamed to
`package_name` ensure we're talking about a simple string, not an object
with more metadata or a gzip file.
Centralize usage of safe_name in util.parse_requirements()
Support installing packages from HTTP links. Refs #9
The update_url_credentials() should be a function, not a method
Refactor Downloader.handle() and extract the find() method
Implement multi-protocol support for installing links. Refs #9

This change does not implement any new protocol. It only implements
the detection of the protocol and the execution of the right handler;

The HTTP handler is the only working right now. All the others will
just raise NotImplementedError