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.
I don't really understand what this is. Can you add a docstring on the class that explains what this does and why? Seems like it stores things in a class property dict, but I'm not sure why.