Use Json serdes for PartResponse caching duties

If the JSON deserialization fails, this will cause the future to fail with a `JsonParseException` (IIRC). But further up the stack (`PartResponseCachingSupport#processWithConfig`) we only check for `CacheException`.

Suggested fix:
1. wrap the deserialization in a Try and convert any exceptions to CacheException; and
2. make the `recoverWith` block in `PartResponseCachingSupport` more robust by adding checks for all non-fatal exceptions