Implement data blob header checking.

Thanks, TDD!
Initial capturing-input-stream implementation.
Switch to character tracking for primary values.
Additional blob data reading testing.
Take simpler approach to reading data blobs.

Instead of returning primary bytes with a thread-bound dynamic var,
return a seq of the data values with attached metadata containing the
byte array. This also gives a simple way to provide the secondary values
as additional sequence elements.
Add support for reading custom data tags.

Add `primary-bytes` convenience function to read byte array from data
sequence metadata.