BibTeXParser: fix accent and special character handling
Refactor BibTeXParser._expand_macro()

- move common functionality to dispatch()
- get rid of default()
Refactor BibTeXParser._expand_macro() (2)

- replace the token type/value tuple with a namedtuple
Extend the _expand_macros test case
Use 'macron below' instead of 'low line'
Expand macros defined in the BibTeX preamble
Store macros in Macro objects

- unify ACCENT and SPECIAL macros
Pass through math mode substrings as-is
Handle all escaped characters
Handle special characters defined as CM ligatures
Add more standard LaTeX2e macros to the list
Move macros to a separate module
Improve macro class names
Add more LaTeX non-ascii and punctuation macros
Support for \textcircled

Rename Accent to Combining as it is not just used for accents.
Properly handle combining macro arguments > 1 char

The LaTeX output of \’{aa} and \c{aa} depends on the font encoding, so
we don’t bother with trying to match this behavior. Extra characters in
the macro argument are always appended to the output.
These don’t seem to be supported by plain LaTeX
Store assorted test strings in ASSORTED
Move LaTeX parsing code to subpackage
Move BibTeXParser test to a unit test