fix bad startPosition in datagram unpack

The startPosition was wrong (too far back) and the bytesRead return
value was too big and the unpacking of the second chunk of the
datagram would start in the middle of the chunk.
Merge pull request #2371 from AndrewMeadows/master

fix bad startPosition in datagram unpack