roscpp: fix issues with the packet reordering in the UDP transport

This patch improves the UDP transport from aborting immediately on the first missing packet (!) to working in a stable manner.

When an out-of-order packet arrived, only the requested read size of the
packet was saved in the reordering buffer. The rest was discarded, which
led to protocol synchronization problems.

Also, out-of-order blocks should be discarded entirely.