Redis Cache: Add timeouts.

This enables you to have configurable timeouts on redis. With the current implementation cache requests might hang indefinitely. This enables you to have fallback to things like a database lookup.

This adds "cache.redis.timeout.connect", "cache.redis.timeout.read" and "cache.redis.timeout.write" variables. Value is in milliseconds, since you might want sub-second timeouts.

Defaults are 10 second for connect, 5 second for read/writes which is very high, so people "relying" on a reliable cache can continue to do so.