Option for custom Redis object to interface with storage

This adds a feature to allow use of an alternate Redis object to interface with storage, rather than creating one.

Rationale: At my company we have a custom Redis sub-class that transparently handles some Redis communication failures and fail-over of the master Redis database to another server. This could also allow use of other back ends that provide a Redis-like interface in Ruby.