JCBC-361: Add real async observe capabilities.

This changeset makes the blocking-in-disguise methods really async,
allowing to run them in parallel as needed. Observe calls are fired
off in the callback pool, returning a new future that overlays
the results of the original one (same behavior as before).

The code is a little more ugly than needed, but it takes care to
inherit the exact same behavor and messages than before.

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