Return remaining unparsed data from parse functions

This depends on ashfall's PR #4, so it currently contains her code from there. The diff will make more sense when that's already merged.
Is it possible to provide link to protocol spec along with section that the reader can use to verify?