Move from urllib to requests

This is the big pull request I mentioned in #1524.

[Requests](python-requests.org) is awesome! I ported a lot of code to `requests`, since it saves a lot of troubles and does a lot of work for you, including gzip handling and authentication. Together with this port, I improved a lot of code. I put most focus on deduplicating code and introduced `request.py` to realize most of it. It does the error checking and more, saving a lot of lines (`searcher.py` went down from 1578 to 1338). Since I don't have access to rutracker, waffles or what.cd, I cannot tell if it is fault proof. However, I did check `git diff` for any problems.

The code is tested by importing Last.FM artists and tags, importing artists and albums from search, scanning media directory and manual post processing a folder. I can verify it sends torrents to transmission, but any other services I cannot test since I don't have acces to them.