using scalaz option syntax on booleans
putting the async mutex table inside of the HttpResponseCacher
eliminates scoping issues in ETagAwareHttpClient