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
since the interval list and the filename are being copied into the member variables, you could receive them by value (drop the &) and std::move them in. This way you'll benefit from r-value initializations (right now, r-values are being copied because of the & in the parameter list). See Scott Meyer's new book item 27 for a discussion on this.