VariantFieldValue: fix random access iterator

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