SyncedVariantReader/Iterator

Also some variant_reader_test cleanup
no problem. As you said, the runtime is still instantaneous. I'm just concerned that the tests may get out of hand if we don't treat them like real code and refactor frequently.