don't directly reference two macro classes

Ideally the macro classes will be removed from the preprocessor core
soon, there's no reason they should be infecting these functions.
use generic skippable macros in preprocessor

This removes TextEndingCommand from the preprocessor. Instead, there is
a generic concept of a skippable type of macro like "db".

This adds SkippableMacro to the preprocessor.
don't use globals in the preprocessor

Macros are now passed around as lists and dicts.
Merge pull request #170 from kanzure/fix-up-preprocessor

Remove some globals from preprocessor.