Respect Cache-Control headers in addition to Expires in JsonClient

At present, only Expires headers are used to set the cache length period for a request. This modifies the `response_cache_time` method to look for a `Cache-control` header in the first instance, and then fall back to the `Expires` header if it is not present or does not contain a `max-age` or `no-cache` directive.