Lightweight optional caching API

This loops in [Backbone Cache Sync](https://github.com/artsy/backbone-cache-sync) into this sync adapter.

The incentive to do this is because we had two Redis client instances in our app (one for directly interacting with Redis and one that was instantiated by cache sync). This caused some issues when trying to wrangle how to deal with Redis going offline. I ultimately decided that it'll be easier to pass the client into a sync adapter instead of hiding inside the module. Once I settled on that idea cache-sync really wasn't doing much, and it seemed like this would be a better place for that logic. Being this is an isomorphic adapter it also opens the potential to leverage browser-side caching—which is a neat side-effect.