Don't parse FnDef blocks unless footnotes enabled

I'm not terribly happy with this solution, since passing the Options struct to
Parser.parse and subsequently Line.type_of is a major signature change.  My
workaround of providing a backwards-compatible signature is also not ideal;
I should go through and fix the many tests that use the two-argument signature
instead.

On the flip side, if Parser produces an FnDef block, but that's never coalesced
into a FnList block by Parser.handle_footnotes, what are we to do?  Not render
the FnDef at all?  Append `[^id]` to the contents first block's first line, and
render the contents?  It seemed to me that simply not parsing the FnDef to
begin with was a simpler choice.

This choice will also allow Line.type_of to ignore, for example, table lines if
desired, or if support for other markdown extensions are added later, to
opt-into their parsing.