[WIP] Cache raw response instead of requests Response

* Serializes the in memory cache to pickle as well in order to align the backends in how they handle mutating the cached object.
* Reworks the backend code to cache the urllib3 response instead of the requests response
  * Will Dynamically construct a requests ``Response`` from the cached urllib3 response
  * This is backwards incompatible with any currently cached responses.

#### TODO:
* [ ] Unbreak Vary headers
* [ ] Handle backwards compatibility break gracefully by treating an "old" cache file as a cache miss.