Switch urllib2 to requests

This patch abstracts request openers and responses, and allows the use of either urllib2 or [requests](http://docs.python-requests.org/en/latest/) to open urls.  The requests library will be used as the default if pressent.

The latter library is generally more capable, has a friendlier API, and importantly, is able to avoid a new HTTP request every time a resource is requested from the server.  This resulted in an order of magnitude speed-up in a script that performed lots of small requests.

This passes the unit tests.  Changes were minimal; the key changes were to Session.py and GenericRequest.py, and the only other changes necessary were to switch response.getUrl() to response.url.