Merge pull request #312 from natefaubion/return-infix

Fix infix matching on return statements.
build
bump version
Fix pattern for multiple where bindings in macroclass
Allow transcription of empty higher-level repeaters
build
Merge pull request #316 from natefaubion/macroclass-where

Fix pattern for multiple where bindings in macroclass
checking for undefined rhs #322
build
Add named pattern and escape groups

This adds a new form to the pattern language for named groups. Where
normal groups use the `$(...)` and `$[...]` forms, named groups use the
`$foo:(...)` and `$foo:[...]` forms. The full syntax matched will be
bound to the name. Additionally, if you decide to use names within the
group, they will be concatenated with the group name, so `$foo:($bar)`
will bind to `$foo$bar` in the template.

This addition also simplifies the implementation for identity rules, as
now an identity rule is equivalent to `rule { $id:(...) } => { $id }`.

`loadPattern` was also refactored to return a pattern object directly
instead of having `syntaxCase` and `macroclass` do it themselves in an
extra step.
build
Consume optional semicolon after macro export
Adds test for consuming optional export trailing semicolon from PR #330
only load submatch into patternEnv on success (fixes #335)
build
Merge branch 'pr/330'
build
Merge branch 'pr/325'
adding fuzzer #331
using esfuzz instead