DATAREDIS-286 - Avoid overflow in JedisConnection#expire / #pexpire.

Workaround Jedis issue https://github.com/xetorthio/jedis/pull/575.
We now delegate calls to expire(...) to pExpireAt(...) in case the seconds parameter is > than Integer.MAX_VALUE.
We query the server time to compute the new expiration date.

Original pull request: #52.
DATAREDIS-286 - Avoid overflow in JedisConnection#expire / #pexpire.

Added unit test to verify that 'time()' is called prior to 'pExpireAt'.
DATAREDIS-267 - Add support for 'CLIENT KILL'.

Killing a client connection can be done via 'RedisConnection' and 'RedisOperations' using 'jedis', 'lettuce' and 'srp'.

We use dedicated parameters for host and port building up the redis format (host:port) for connection identification.

Original Pull Request: #56
DATAREDIS-269 - Add support for 'CLIENT SETNAME'.

Setting client name is possible for 'jedis', 'lettuce' and 'srp'.
Using 'jredis' throws 'UnspupportedOperationException'.

Original Pull Request: #54
DATAREDIS-270 - Add support for 'CLIENT GETNAME'.

Support for getting client connection name has been added for 'jedis', 'jredis' and 'srp' drivers.

Using 'jredis' will throw 'UnsupportedOperationException'.

Original Pull Request: #51
DATAREDIS-268 - Add support for 'CLIENT LIST'.

'RedisConnection' and 'RedisTemplate' have been extended by 'getClientList' retrieving client informations from redis. 'RedisClientInfo' provides access via specified getters as well as an more general approach directly using the keys (like 'qubuf').

The operation is available for 'jedis', 'lettuce' and 'srp'.

Original Pull Request: #53
DATAREDIS-287 - 'setBit' should return boolean value.

SetBit now returns the original bit value stored at the offset. The result will also be added in pipeline and transaction mode which means that the final result collection may now contain more entries than in prior versions.

Original Pull Request: #58
DATAREDIS-277 - Add support for 'SLAVEOF'.

'SLAVEOF' and 'SLAVEOF NO ONE' are available via 'RedisConnection' and 'RedisOperations' for 'jedis', 'jredis', 'lettuce' and 'srp'.

Original Pull Request: #57
DATAREDIS-284 - Add support for zCard to ZSetOperations.

'zCard' has been introduced in addition to 'size' as it feels more natural for people using redis. 'size' in 'ZSetOperations' / 'BoundZsetOperations' now delegate to 'zCard'.

Original Pull Request: #55
DATAREDIS-289 - Avoid NPE in DefaultValueOperations#append() in case of pipelining or/and multi/exec calls.

We now return null if DefaultValueOperations#append() was applied to a non-existing list and thus returned null. Previously a NPE was thrown in case of pipelining or/and multi/exec calls.

Original pull request: #48.
DATAREDIS-292 - Prepare release 1.3.0 M1.

Update release notes, changelog and readme.

Original pull request: #61.
DATAREDIS-292 - Release version 1.3.0.M1.
DATAREDIS-292 - Prepare next development iteration.
DATAREDIS-293 - JedisConnection, allow bulk addition with same score.

Added version check for jedis library as the operation had been introduced in 2.4.

Original Pull Request: #63
DATAREDIS-73 - Add support for spring managed transactions.

Prepare issue branch.
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.