JCBC-578: Fail observable instead of throwing directly.

Motivation
----------
The previously introduced change (07ef89b7a5bd71f6bea849487bd71db0764ef3c3) correctly
works for the synchronous API, but fails the assumptions for the asynchronous one. The
expectation is that the Observable is failed, not the exception thrown on the caller
thread right away.

Modifications
-------------
The observable is failed, instead of throwing right away. For the synchronous API the
change is not noticeable.

Result
------
More uniform error handling for the async API on connection errors by not breaking
the API contract.

Change-Id: Ic1b70155c2659283acc347c1a885005cf0430a9b
Reviewed-on: http://review.couchbase.org/42110
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
Reviewed-by: Sergey Avseyev <sergey.avseyev@gmail.com>