Store vectors and projections to redis.

This is generally slightly slower than storing to disk (when there is
enough cache space for the entire working set), but is more
memory efficient, so can query against a much larger data set on a given
machine.

This uses the to_binary and from_binary methods rather than JSON, so
it's acceptably fast.