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.
When composing a key like this, you need to be careful to compose them in a way that reduces the likelihood you end up with two combinations that produce the same key. e.g.

* classifier: "foobar" key: "baz"
* classifier: "foo" key: "barbaz"

Those both end up with a key of "foobarbaz".

Some possibilities:

1. hash all the parts and use a delimiter like `::`
2. put them in a tuple (tuples are hashable, so you can use them as dict keys)
3. use a hierarchical store of self.store -> classifier -> key -> value
4. some fourth option?