Add method DecodeBuffer#drainFrom(DecodeBuffer, int)

An User can specify transfer size between DecodeBuffer.
Fix LengthRemoveDecoder to process many packets

LengthRemoveDecoder drops packets when many packets arrived in the
input buffer. If the buffer contians many packets, repeats operation
until the buffer gets empty or has an incomplete packet.