More backends

Mostly silly stuff. When I wrote a tutorial on how to write a redis backend this happened. It was easy, so I just chucked it in a commit with another inane backend. Also, test generators are fun. Incidentally fixes 
#3.
The docstrings for set_key, reset, and get_key are the same for all BaseBackends, so you can just document it on the superclass and skip it on all the subclasses.