JCBC-110: Add accessor funcitons to observe enum classes

Change-Id: If6c8ecd0fd5be178001db7db229b94a9184a8a2f
Reviewed-on: http://review.couchbase.org/20849
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
JCBC-110: Observe operations return their handling node in gotData

Change-Id: I56f5f1844f0388a750ab5b5b4703e616b1e2aa10
Reviewed-on: http://review.couchbase.org/20851
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
JCBC-110: Delete operation in MemcachedClient now returns it's cas

Change-Id: Id70241db2e4111f335b76ed9e6c6179d266aee94
Reviewed-on: http://review.couchbase.org/20852
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
Use Arrays.toString() when printing the contents of an array

Just printing an array will print a useless value. Calling the
Arrays.toString() function will at least try to print something
useful.

Change-Id: Ifd6a3da495835694b300cf7f94b96c79ee03f4bd
Reviewed-on: http://review.couchbase.org/21153
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
Make unsynchronized LoggerFactory field syncronized

Because the compiler or processor may reorder instructions, threads
are not guaranteed to see a completely initialized object if the
init function is called by two different threads.

Change-Id: I33342891fe098f84791bf8358e82f31a4bc99d92
Reviewed-on: http://review.couchbase.org/21152
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
JCBC-105: Add stats key operation

This only allows you to do stats key on the active vbucket, but
we add the ability to get stats from the replica vbuckets
later.

Change-Id: I903741a5f31bc3653e313185f2193708876d029e
Reviewed-on: http://review.couchbase.org/21200
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
JCBC-128: Add ZERO to the PersistTo ENUM.

This small changeset is the prerequisite for a larger change
in the JCBC client, so that it is possible to only wait for
proper replication and not for persistence too. See the
proper commit in couchbase-java-client tagged with JCBC-128
for more details and tests.

Change-Id: I3b1385a7a9553170a46d7ef72d6b537c0997b351
Reviewed-on: http://review.couchbase.org/21415
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
Don't increment volatile variables

Incrementing a volitile int is not thread safe since it follows
the read/modify/update pattern.

Change-Id: Idd389ea6dd576376a6b4a01cd2d38e9a7ef7733c
Reviewed-on: http://review.couchbase.org/21151
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Matt Ingenthron <matt@couchbase.com>
- fix - check exceptions on rv.getStatus() preventing passing null ptr to the listener callback (no op status on error)
JCBC-105: Add stats key operation

This only allows you to do stats key on the active vbucket, but
we add the ability to get stats from the replica vbuckets
later.

Change-Id: I903741a5f31bc3653e313185f2193708876d029e
Reviewed-on: http://review.couchbase.org/21200
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com> (cherry-picking from commit aedb00dd74296140e00133a19de2f9f354562494)
JCBC-128: Add ZERO to the PersistTo ENUM.

This small changeset is the prerequisite for a larger change
in the JCBC client, so that it is possible to only wait for
proper replication and not for persistence too. See the
proper commit in couchbase-java-client tagged with JCBC-128
for more details and tests.

Change-Id: I3b1385a7a9553170a46d7ef72d6b537c0997b351
Reviewed-on: http://review.couchbase.org/21415
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com> (cherry-picking from commit f0e976235a9bf95f74d71d294b499a2bde8cbb9b)
Merge commit '4f8f0dfda6d3d97b441f062fca223c0827043e5f'

Conflicts:
	src/main/java/net/spy/memcached/MemcachedClient.java
	src/main/java/net/spy/memcached/protocol/ascii/AsciiOperationFactory.java
	src/main/java/net/spy/memcached/protocol/binary/BinaryOperationFactory.java
	src/main/java/net/spy/memcached/protocol/binary/DeleteOperationImpl.java
	src/main/java/net/spy/memcached/protocol/binary/KeyStatsOperationImpl.java
	src/main/java/net/spy/memcached/protocol/binary/ObserveOperationImpl.java
	src/test/java/net/spy/memcached/OperationFactoryTestBase.java