JVMCBC-46: If a node has no services, don't try to load them.

Motivation
----------
If a node is currently being removed but an operation is pending to locate
a service on that node, it needs to gracefully check if a service is available.

Previously, it could be that a NPE is thrown because no service is available on
the per-bucket services.

Modifications
-------------
This changeset primarily checks gracefully if a service is found and if not, returns
null which will cause the operation to be rescheduled properly.

In addition, it adds better error-level debugging to the carrier refresher if its
config streams fail and also toStrings for request/response events so if things show
up in stack traces they are easier to digest.

Result
------
Resiliency during node removals and better error debugging capabilities.

Change-Id: I74b06fb8b2c33e0799dbbda9d732adbf426afe77
Reviewed-on: http://review.couchbase.org/42292
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
Reviewed-by: Simon Baslé <simon@couchbase.com>