Make AbstractReconnectionHandler use a ListenableFuture.
Ensure failed reconnection attempts don't re-trigger onDown.
Expose an API to cancel reconnection attempts (JAVA-493).