JVMCBC-42: Rework endpoint handlers for more fine-grained control on completion.

Motivation
----------
This changeset adds a very simple state enum to the decoding process and makes it
possible that the implementing child handlers signal its parent when they are done
with the current response, even when more chunks arrive in the meantime.

This is necessary because it could be that some streaming responses push out chunks
to subsequent observables, even when the main "response" one is already done. The
previous implementation did fall short on this and resulted in potential deadlocks.

Modifications
-------------
A DecodingState has been added and is utilized by the parent AbstractGenericHandler. All
implementations now utilize this automatically, but they need to signal the parent when
they are done through the "finishedDecoding()" method. Only then a new request/response
will be picked off the queue and is used.

Also, the obsolete CHUNKED status has been removed, since this was the original implementation
that has been superseeded by individual observable subjects.

Result
------
Better signaling between child and parent when decoding is actually done, regardless of
what and how many messages have been sent.

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