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.
Merge pull request #1145 from joshmoore/12358-dv-metadata

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