Predict if the NIO channel has been fully read or not. This lagorithm will
first search for the content-length header, and use that value to determine if
the bytes has been fully read or not. If the content-length isn't included,
it will search for the end of the HTTP stream, which is a '\r\n'
Note: the parsing algorithm is an adaptation of:
org.apache.coyote.http11.InternalInputBuffer
written by Remy Maucherat

Parse the ByteBuffer and try to determine if the bytes
stream has been fully read from the SocketChannel.
Drain the SocketChannel and determine if the request bytes
has been fully read. For POST method, parse the bytes and seek for the
content-type header to determine the length of the request bytes.