Fix trailing field and empty record issue

This should fix #13. Also corrected missing trailing empty fields. No longer converts to a table of strings, uses the length of the string to go back to a range or tries to detect empty fields. It iterates over the bytes, of the record or field to find the delimiters and build up the information. Parsing a message payload passes over each byte at most twice. Once to find the records and once to find the fields.