JCBC-318: Making sure reconnect logic is not called in parallel.

This also prevents the underlying logic to be executed more often
than needed and therefore mitigating race conditions and overloaded
IO.

Change-Id: I6c18feadf55c56bb5bc0ba5c8e6920337e452f21
Reviewed-on: http://review.couchbase.org/26860
Reviewed-by: Deepti Dawar <deepti.dawar@globallogic.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>