Generalized persistence layer; a second adapter

The persistence layer now has little or no couch-specific code. Couch support is now 100% the responsibility of the couch adapter layer. To prove this, this branch also includes a redis adapter layer.

The API has changed slightly so the version is now 1.1.x.