Fix tests

Mike B is a very naughty boy.
Try/catch test case
Test that exceptions propogate from lazies correctly
Use a mutable context object instead of cont, econt

Previously, we have a lots of references to cont and econt, even
though econt is usually pass through unchanged.  This is already
cumbersome, and extending this approach directly to support return
statements would be intolerable.

So instead of adding another continuation to the argument list of each
procedure, we thought it would be better to bite the bullet and have a
context object that holds the continuations, and makes explicit the
stack-like way that the continuations are used.
Add an abort handler stack, and implement 'return'

Aborts are used for any deviations from the normal continuation flow.
There are used here to implement exceptions and returns, and could be
used in the future to implement 'break' and 'catch' without adding
further stacks.
Record the stack depth for handlers, not the stack

When a handler fires, is merely needs to truncate the continuation
stack to the appropriate size.  So we don't need to record a copy
of the stack with each handler pushed.
Formatting and JSHint fixes
Fold trampolines into the context object

There could only be one active trampoline at a time.  So the information
from the trampoline can be folded into the context.  The continuation
is already present on the top of the continuation stack, so this really
means that we add a "current value" field to the context.

Because we no longer return the next trampoline from continuations,
we can drop the 'return' keyword in many places.

But that means we can't use the return value to mean 'stop the
interpreter'.  Instead, the interpreter state is held explicitly in the
context, and there is a 'pause' method on contexts to suspend execution.
This makes some bugs less likely, so it's a good thing in general.
Invoke pegjs with --cache to get an efficient parser

Without --cache, pegjs produces a straight recursive descent parser,
with can take exponential time (and apparently does for our grammar).
Add some missing returns after ctx.fail
Note on purpose of inheritFrom
Remove dependency on noodle