Sam: define empty_header

Not really that useful, but it makes it clear that the `header` type
includes the possibility of no header, i.e. that you never need `header
option`.
Sam: expose parse_header

Factor out definition from within `read` and expose. Closes #140.