added test-case for correct parsing of latex environment delimiters defined as macros
refactor preamble into its own parser
updated latex macro test for recursive definitions
Refactored all LaTeX Reader's handling of macros to a preprocessor `handleMacros`.

This approach results in additional passes through the document in addition to `handleIncludes`, but it's ultimately cleaner and more maintainable. Many uses of macros were not properly handled by the old paradigm, such as when environment begin\end delimiters were defined as macros. The new paradigm preprocesses all macro definitions and recursively apply them to the text until reaching a fixed point, so the LaTeX Reader is free to assume that no macros exist in the input.

Closes #982.

As a side effect, the `macro` parser now produces String instead of Inline.

Note that this commit introduces a regression when `\newcommand` is in the argument of another command. (For example, inside `\pdfstringdefDisableCommands` as in the test files.) Perhaps the most sensible policy for now is to ignore all such occurrences.