(pending verification) Fix potential deadlock when reconfiguring.

This changeset fixes a potential deadlock which can happen during
reconfiguration and a failing node. When a 500 error response comes
back from the server, the httpcore IO pool handles the retry and
passes it back to our logic, where it grabs a new node to ask. This
node list is synchronized.

In parallel, when a reconfiguration happens, we synchronize on this
list and mark the appropriate node in the pool for shutdown. We
arrive in a deadlock situation because in our code the node list
is synchronized (waiting/holding) and in the httpcore code there
is a lock (waiting/holding) on the internal node to shutdown, but
it is still hold by the retry process.

This changeset moves the actual shutdown out of the synchronized
block, making sure that parallel requests can progress. The node
has been removed out of the list already, so it will not be
tried again for a regular view request (and we can shut down the
open connections behind the scenes).

Change-Id: I728da6e02753138e83e96b849edf3213aa2b4f44
Reviewed-on: http://review.couchbase.org/33826
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>