Move Docx reader to DocxContext monad

This is a ReaderT State stack, which keeps track of some environment info, such
as the options and the docx doc. The state will come in handy in the future,
for a couple of planned features (rewriting the section anchors as auto_idents,
and hopefully smart-quoting).
Docx rdr: Avoid mapping makeHeaderAnchors globally

It only applies to headers, so we can just apply it when we make a
header.
Docx Reader: Clean up guards

Use PatternGuards to get rid of need for `isJust`, `fromJust`
altogether.
Docx Reader: Simplify makeHeaderAnchors

Using pattern guard, in preparation for doing some more complicated
stuff with it (recording header anchors, so we can change them to auto
ids.)
Rewrote header generation.

In preparation for auto ids.
make makeHeaderAnchors make an auto id

Record relationship between original id and auto id, so we can fix links
after.
Docx Reader: Introduce link rewriting.
Change test result to match new behavior.
Merge pull request #1377 from jkr/monad

New DocxContext Monad, and rewriting anchor ids