Allowing clients to pass a connectionString to RedisClient

At our company, all our service endpoints are defined using connection strings coming from a configuration file to allow dynamic configuration. This PR allows clients to provide a connection string like this:

`var client = new RedisClient(new ConnectionString(Environment.MachineName))`

I added a new class to avoid breaking backwards compatibility since RedisClient(string) already exists.

What do you think?

This is only a spike, i dont expect it to be merged in this state. It needs to be more stable and handle invalid formats etc.