NCBC-730: Ensure that AOOR exceptions are not thrown when Observe fails

Motivation
----------
When an observe operation fails before going across the network, the
caller needs the correct error state and information so that they can make
an informed decision on how to handle the error.

Modifications
-------------
The Observe classes GetResult() has additional logic to ensure that it
will not through an ArgumentOutOfRangeException in the event of a
client side error.

Result
------
An Observe operation that fails will not throw an AOOR
exception, but instead return the corrent error state and message.

Change-Id: Ib3c66424963ee79ebd09080ce59a7c5273ee94fc
Reviewed-on: http://review.couchbase.org/43890
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Simon Baslé <simon@couchbase.com>