[web] class based implementation for our API service
Add authentication to the web server. Closes #5
Improve auth handling in Downloader implementing auth in Uploader
Fix Downloader.update_url_credentials()

We should not try to update the other URL if the base is from a
different domain (or port);

Also, we should not try to update it if it already contains the data we
wanna set. The `ParseResult` instance returned by `urlparse` does not
allow us to change attributes when they are set.
Standardize __future__ imports in all py files
Fix race condition in Index.ensure_path()
Extract helper function get_auth_info_from_url()

Just a small refactoring to use the same code that parses the URL to
find authentication credentials in the Downloader and the Uploader
components.
Kill AttrDict