Record and rollback keys in a test

This change intends to make it easier to keep some data populated in redis between
integration tests, while still avoiding test pollution.

I've added TestRedisService which is injected automatically instead of
RedisService during the test phase.  TestRedisService is just a wrapper
around RedisService that allows you to turn on recording of inserted keys and
then call a method to delete them all when you're done.