MultipleVariantReader and MultipleVariantIterator

Enables iteration over multiple input files, returning a vector of Variant objects per genomic location.

The vector is reused per location, so the caller must complete processing before continuing iteration, or make a copy.

Strongly inspired by the example of VariantReader/VariantIterator.  Merging these Readers or Iterators may be appropriate.

This is an alternative solution to Issue #76 
David and I discussed the merits of my hack vs. creating an actual inequality operator (see Hipchat July 7) and I decided to go with this approach for these reasons.

If we are comparing two variant vectors, we have to iterate through these vectors.  That could be expensive.

We also don't currently have a Variant equality operator, so we'd have to implement that, figuring out which Variant fields are necessary for equality.

If we were using this call more generically I would want to do it properly.  But we're only using it because we're obligated to by foreach, and we never compare to anything besides MultipleVariantReader::end().