Read the headers at index creation.

Indexing is tricky because part of it fights against the internal
state of the CSV parser/iterators. One of the complexities of the
reader is the handling of headers, which is probably too clever for
its own good. To avoid running into weird errors, we force the
internal state to have gone through the motion of reading the headers,
which makes it easier to jump around the CSV data.