Rename MacroHelper to MacroContext
Allow promise! to work on both generator functions and generator instances.
Tweaks to the test suite
promise! can now work on a generator instance instead of just a factory, allow better sync handling in promises, and added fulfilled! and rejected! macros.
Switch the parser to use some promises internally.
Some more parser optimizations
Add support for declaring consts. consts (currently) do not have scope and replace any instances of its use with its literal value (which must be a constant or an expression that evaluates to a constant).
change a few lets to consts.
Allow consts to be scoped within a block. Any consts on the top-level scope will be carried into the MacroHolder.
Allow empty files to be compiled.
make --join option work again. Fixes #45
Bump version