Variant: read api for format field strings

There was a bug with the implementation that wasn't concordant with how
htslib parses the strings in the bcf1_t structure. It now works by
checking for bcf_string_vector_end values to separate the strings, and
skips blocks to find the values for every sample using the fixed length
blocks as defined by bcf_fmt_t->n.

Support for vector of strings per sample is not yet agreed upon in the
VCF/BCF spec, so comma separated strings will be treated as a single
string by htslib and thus by Gamgee.

* string type number of bytes per value is reported by fmt->n (weirdly)
* make format utility functions not inline (too big to inline)
* add tests for variable length strings across samples
* add functional tests for iterators of VariantField<VariantFieldValue<string>>

fixes #78
Should the return statements on line 37 and 46 match? Noticed the prior returns `0.0` while the later is just `0`.