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

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 in one piece.