Do not start the uploader if we  don't need it
cosmetic change
Improve debugging support and messages
Protecting the access of the signal list with a lock
Do not queue packages already queued
Do not trust urllib2 at all

Well, I tried to use urllib2 impsed by distlib locator API. It didn't
work quite well. After wasting a couple hours working on my own opener
based on PIP's own opener[0], I decided to just depend on `urllib3`
which is the only sane guy among the `urllib` family but unfortunately
is an external dependency;

It's not that bad though, since it's only 61k and also provides an API
for uploads, we'll definitely drop `requests` soon.
Authentication for the downloader service
Do not decode the gzipped content in the downloader service
Not showing anything in the report when everything works
Prefer to download the first package found

In the pypi scraper locator, when we find a page for a given project
containing links for packages, we'll just prefer the very first one from
now one, they seem to be more updated then the older ones.
Fix requirements file
Visit sub pages found by the PyPiLocator

We're now opening sub pages marked with `rel=(homepage|download)` to try
to find packages that are not available right in the project page.