Use etags instead of timestamps for all API resources.
Review Request #6888 — Created Feb. 3, 2015 and submitted
A bug was found where fetching a review request API resource, then closing an issue, and then fetching again would return the original resource with the wrong information, if caching requests. This was due to the resource's cache information being based on the last_modified timestamp of the review request, and not factoring in other information. While investigating, I realized there were numerous cases where a timestamp was being used without in ways that would cause incorrect stale caches, and that most resources had no caching at all. This change fixes these problems by switching all resources to etag-based caching. This adds a little overhead up-front to the request, but means that the client can greatly benefit from caching on all resources, without fear of the cached version being stale.
Unit tests pass.
Couldn't reproduce the caching problem I was hitting after this change.