SyncedVariantIterator now outputs "sparse" Variant vectors

Depends on #377 - will rebase after that is merged
It returns NULL when bcf_sr_has_line() is false, so this check covers it.

```
#define bcf_sr_has_line(readers, i) (readers)->has_line[i]
#define bcf_sr_get_line(_readers, i) ((_readers)->has_line[i] ? ((_readers)->readers[i].buffer[0]) : NULL)
```