T53 manifested as a memory exhaustion problem on Travis, but the underlying
problem was that the abc-p2p-fullblocktest was producing enormous outputs
due to having entered an anomalous condition based on bad p2p communication
between the node and the test framework (messages that were broken up
could not be properly re-assembled - this interfered seriously as
blocks and transactions increased in size and were read in several parts).
This commit reworks the way that the test framework reads, buffers and
processes p2p messages from the node, eliminating this re-assembly problem
that plagued abc-p2p-fullblocktest (and perhaps some spurious problems on
other tests too).
A new helper class, P2POutput, is introduced in p2poutput.py .
This class does the buffering and emits what should be integral single
messages through its `get_next_message` interface.