[plugin-response-cache] Allow return "null" when cache backend is unavailable
I am using `plugin-response-cache` to implement redis cache backend. The plugin makes redis or other cache backend a hard dependency. This means when the apollo server lost connection to redis server, any incoming requests will fail. It would be good to allow the redis client to retry connection. At the same time, any queries with cache control should still function by bypassing cache.

This can be achieved easily by adding try-catch block to this [line](https://github.com/PhantomRay/apollo-server/blob/c609f17020a0d55849a9213becd7eeb779948464/packages/plugin-response-cache/src/ApolloServerPluginResponseCache.ts#L209).

```typescript
let serializedValue = undefined;
try {
  serializedValue = await cache.get(key);
  if (serializedValue === undefined) {
    return null;
  }
} catch (err) {
  return null;
}
```

Is it worth to add this feature? Meanwhile, if apollo server losts redis connection, the service is totally unusable.
