* Twisted methods require byte-string arguments.
* The headers str conversion in httpdownloader _download_file was
incorrent and left the dict key still as unicode so replaced with
a dict comprehension (py2.7 requirement).
* libtorrent >= 1.1 dropped support for GeoIP so this adds support
again using MaxMind GeoIP Legacy Python Extension API.
For reference it is known by the following package names:
* Maxmind: geoip-api-python
* Linux: python-geoip
* PyPi: GeoIP
With large amounts of torrents, saving the state file becomes
a performance bottleneck, mainly due to the required processing
in pickle.dump. When run in the main thread, the server will
hang and be unresponsive for a significant time.
Solve this issue by running the save state job in a separate thread.
Using the setproctitle module the process name displayed in top
and other places will correctly reflect the binary name. This is an
optional dependency