Fix a race condition when returning a connection to the pool.

This fixes a race condition that may occur when placing a connection
back into the pool. This may result in > maxConnections being active
at any point in time.

The serialized stream of events that may lead to this condition are:
* pool has maxConnections open and permits issued
* thread 2 is waiting on permit
* thread 1 releases permit
* thread 2 gets permit
* thread 2 sees available queue as empty
* thread 2 creates new connection
* pool contains maxConnections + 1
* thread 1 puts connection back into available queue
* there are no permits available, connection sits idle
  but possible not long enough to be reaped
Cleanup FutureOperation

* Fixed a bug where a FutuerOperation could be set > 1 times
* Fixed FutureOperation to handle the correct states on set operations
Merge branch '2.x-development' of https://github.com/basho/riak-java-client into 2.x-development

Conflicts:
	src/main/java/com/basho/riak/client/core/FutureOperation.java
	src/main/java/com/basho/riak/client/core/RiakFuture.java