Persisted models now have a 'key' property that is an alias of
whatever key field you specify when you call persist() on a model.
If you don't specify one, it defaults to '_id'.

Wrote a basic test for it. Couchdb persistence tests pass.
Pulled the couch adapter out into its own file.
Began disentangling couch from the persistence methods and putting
all db-specific concepts into the adapter.
Started writing a redis adapter just to force the issue.

Tests pass.
Request redis & hiredis in the package deps.
Got the redis adapter working & generalized persistence considerably.

Methodically got all the unit tests for the redis adapter working by
methodically implementing all the redis functions.
Some couch-ness in the persistence layer remains.
Moved hiredis to the optional deps because it appears not to build for
node 0.9.
Broke the couch-specific unit tests out.
Fiddled with optional properties a bit in the base model.
removeMany -> destroyMany

Also, the redis test now cleans up after itself properly.
Skip design docs or empty documents.
100% test coverage on the redis adapter, which did not turn up any bugs.

To my surprise.
Slowly de-couchifying the persistence layer.

Moved some couch-specific object construction into an inflate() method
in the couch adapter, where it belongs.
Another step toward generalization: save() & update() in the adapters now do all the driver-specific work.

E.g., passing & updating a _rev parameter.
Removed the last traces of _rev from persistence.

It is now banished to the couch adapter.
Cleaned up method signatures a bit.
model.configure() --> setStorage()

Updated documentation to reflect yesterday's API changes.
Documentation tweaks.

Added the mixin example to the example source.
A tiny bit of jshint cleanup.
Merge pull request #1 from ceejbot/redis-persistence

Generalized persistence layer; a second adapter