docx.py: Retain styles and numbering in raw ElementTree form, in case Document._extract() is called.
Change transform api.
Keep OOXML numbering info until fixup_lists.

The way we were doing this, <numId val="0"> would be ignored, which becomes incorrect when we consider inheritance. A numId of 0 on a paragraph must override any numbering in its paragraph style.
Rephrase something in fixup_links to make it easier to ignore explicit markers later, when we add OOXML numbering.
Another tweak to has_bullet. In Word numbering, ilvl defaults to 0.
Trivial. Rephrase some dict deletions in transform.py to use dict.pop().
Numbering, part 1 - Add a marker element to each numbered paragraph, containing a touch of metadata; but strip it out in an early fixup.

We will proceed by moving the stripping fixup later and later, patching more and more fixups to cope with the presence of the span.marker.
Numbering, part 2 - Fix munge_annex_heading (in fixup_paragraph_classes) to cope with span.marker elements.
Numbering, part 3 - Tweak fixup_remove_empty_headings to cope with span.number elements.
Simplify fixups.py. It contains some sort of stupid optimization that is somehow slightly busted, which I have spent way too much time trying to debug.
Numbering, part 4 - fixup_element_spacing. Something really strange is going on in here and the program doesn't offer the kind of diagnostic output that I would need to track it down. Hence the brute force approach.
Numbering, part 5 - Trivial. A few fixups are unaffected.
Numbering, part 6 - fixup_sections.
Numbering, part 7 - Change the remaining fixups (fixup_formatting, everything using find_section, fixup_lang_15_12_3, fixup_lists, fixup_links) to cope with markers, and remove markers last.
Numbering, part 8 - Actually generate markers and use them for headings.