Continue reading incoming data until enough rcvd

This fixes the case of a large packet being received, the current code stops processing as soon as >12 bytes are received,
keep already received data if not enough to decode
Merge pull request #25 from sgrimee/patch-1

Read all data before decoding incoming packet