Make private class in DV reader public (see #12358)

In order to be able to handle the DVExtHdrFields as anything
other than a string, the object will either need to be made
public or be made to implement some public API (e.g. Map).
Re-hide and flatten DVExtHdrFields

Rather than expose the inner class, we flatten
its contents into the metadata table so that consumers
need not know of its existence.
Fix import error
Merge pull request #1160 from joshmoore/rebased/dev_5_0/12358-dv-metadata

Make private class in DV reader public (see #12358) (rebased onto dev_5_0)