DATAREDIS-73 - Add support for spring managed transactions. 

`RedisTemplate` now supports enabling of transaction support, which is ***disabled by default***.

In case of enabled transaction support the `RedisConnections` will be bound to the current thread during ongoing outer transactions. We call `MULTI` at the beginning and depending on transaction state `EXEC` or `DISCARD` at its end.

To support read operations during the transaction we wrap a proxy around the bound connection piping read operations to a new (non thread bound) connection obtained by the underlying `RedisConnectionFactory`.

Transaction support is available for `jedis`, `lettuce` and `srp`, while had to be skipped for `jredis` due to the lack of support for `MULTI`.