Add Notifiable class

We need to be able to notify the UprConsumer as well as the
UprProducer and this is different than the requirements for tap. I'm
usually not a fan of multiple inheritance, but I think in this case
it works pretty well. The idea is to have the notification state in
the Notifiable class. Then any class that wants to be notifiable in
the ConnMap just needs to extend this class. In the future when we
remove tap we can refactor this multiple inheritance out.

Change-Id: I1c8a9c19084e6d72b9710d048886f2d2243bac78
Reviewed-on: http://review.couchbase.org/34204
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
Close a stream if the vbucket state changes

This change is needed for two reasons. The first is that upr
consumers should get a notification that a stream is closed if
the state of the vbucket changes. The second is that since a
vbucket might be accessed by a stream during shutdown we need
to notify the upr connection that the vbucket is no longer
valid so that the stream can be closed. Otherwise we might
access invalid objects.

Change-Id: I1ef72b7488976a058af001afb085a73cd484edc7
Reviewed-on: http://review.couchbase.org/34205
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
MB-9715: Add UPR Producer connection pausing

In the current code the upr thread continually calls the step
function for any producer connection. This change allows an UPR
Producer to notify the memcached layer when it does and does not
have data ready. It will fix the 100% cpu issue that occurs when
using an UPR Producer

Change-Id: I68f6cbd098ad3ed26ef2024ae2af7c032325da64
Reviewed-on: http://review.couchbase.org/34206
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
MB-9715: Add UPR Consumer connection pausing

In the current code the upr thread continually calls the step
function for any consumer connection. This change allows an UPR
Consumer to notify the memcached layer when it does and	 does not
have data ready. It will fix the 100% cpu issue that occurs when
using an UPR Consumer.

Change-Id: I122faa8621b340dbc4e8708c65b09aea40989e9f
Reviewed-on: http://review.couchbase.org/34207
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>