Lazily redis connect

Prevents connecting to redis when a client is instantiated. Allows for applications to create clients extremely cheap and only actually connect to the redis server when the client is actually used.