Add ETag to cached CacheRequest

When retrieving CacheRequest from the local cache, the eTag() method
would return null instead of returning the eTag associated with the
cached response. This change modifies the eTag method to return
HttpRequest.eTag() when the response is not 304, and response.etag when
it is.