Use CacheControl to file-cache requests

I don't like the fact that this is a `CacheControl` object if you have `cachecontrol` installed, but a `requests.Session` object if you don't. Since it looks like `cachecontrol` can be configured as a transport adapter, lets use it that way:
```python
# at the top
try:
    from cachecontrol import CacheControlAdapter
    from cachecontrol.caches import FileCache
except ImportError:
    CacheControlAdapter = None

# here
self.session = real_requests.Session()
if CacheControlAdapter:
    adapter = CacheControlAdapter(cache=FileCache(".webcache"))
    self.session.mount("http://", adapter)
```
This way, you can confidently say that `self.session` is a `requests.Session` object, regardless of what libraries are installed.