Initial port of Gary Russell's code

Port of Gary Russell's Reactor-based TCP code. This port removes all
Spring dependencies.
Improve locking in Buffers

Ensure that the lock is held before checking for exhaustion,
otherwise the signal that the feeder is no longer exhausted may be
missed.