IndexedVariantReader/Iterator

Iterates through an indexed BCF based on the intervals passed to it.

Heavily based on Khalid's IndexedSamReader/Iterator.

Delivers #160 for BCF
you're relying on the implicit conversion of the vector's iterator type to uint32_t here and it's correspondence to the index. Wouldn't it be better to do `m_interval == m_interval_list.size()` ?