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, P2PBuffer, is introduced in p2pbuffer.py .
This class does the buffering based on separators ("network magic") and
emits what should be integral single messages through its
get_next_message interface.
The test framework derives a MininodeP2PBuffer from this class.