[mdoc-update] Refactor type+member traversal algorithm.
ECMA wants to import some Microsoft documentation for use in the next version
of the ECMA standard (hence mdoc-update-ecma-xml).
Unfortunately, Microsoft doesn't use the Microsoft XML Documentation format
for their internal class library documentation. They use some other XML
dialect (which looks similar yet different from "msxdoc").
So to make life easier for ECMA, mdoc-update of needs to support yet another
import format. Yay?
Unfortunately:
- The current import logic uses no abstractions; we have "separate" code
paths when importing msxdoc's vs. ECMA docs. We need a sane abstraction
if we're going to add a third import format.
- Additionally, the ECMA doc import logic is a mass of spaghetti code, as
ECMA import also controls type+member enumeration order.
Start trying to bring some sanity to this by adding a DocumentationEnumerator
abstraction so that some of the XmlReader maintenance for importing/processing
ECMA documentation can be split out.