Added 'monitor' parameter for large HTTP requests.

The procedures that receive this parameter are:
- pull
- query_server
- repair

The 'monitor' parameter should be a function that receives two
arguments: the total amount of bytes of the response, and the partial
amount of bytes received. It will be called for each chunk of the
response retrieved.

Example:

>>> from dbsync import client
>>> def mon(total, partial): print total, partial
>>> client.repair(REPAIR_URL, monitor=mon)
5062 0
5062 128
5062 256
5062 384
...

The library 'requests' was included as dependency in order to add this
feature.