VariantFieldValue: fix random access iterator

Iteration needs to perform the same data conversions as the
VariantFieldValue. Moved all common functionality to
utils::FormatFieldType.

* fix iterators operator[] to always use original pointer
* fix float accessors to reinterpret_cast instead of memcpy the values from the byte array
* add copy constructors to all iterators (so we can use standard library functions with them)

note: string accessors are still not working (gotta check with Heng why htslib is not doing what it's supposed to do)