simplifying hash construction code
and using request hash codes in InMemoryHttpResponseCacher
simplifying caching code in ETagAwareHttpClient