SyncedVariantReader/Iterator

Also some variant_reader_test cleanup
I know this is not the point of this pull-request, but as we spoke on the whiteboard, the m_synced_readers data structure will keep a stationary array of bcf1_t's. This means that (probably) the records will always be in order. We could have our vector *always* points to these bcf1_t's -- meaning our vector of Variants will have each variant created with the bcf1_t in the corresponding position in the array. This way we get no copies ! yay! But we will have the issue of a file with 2 records on the same position.... which I bet they do too.