simple-markdown: Add reflink support

Summary:
    [Reflinks][1] are fun--they reference a "def" defined elsewhere in
    the markdown. To handle these, we keep extra state about what defs
    and what reflinks have been seen so far on the `state` object
    during the parse. Then when we reach a ref or a def, we fill in
    the newly acquired information into the reflink AST node.

    Yeah, mutation :(. But this works really surprisingly cleanly.
    The goal was to keep all the parsing inside the standard parse
    loop, so that anyone extending the parser still has all basic
    functionality intact, and I think this succeeds at that goal.

    [1] http://example.com/def

Test Plan:
`make test`
Experimented with it in the simple-markdown-tester widget

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D12614