Handle default before and after listeners for jsrepl.
Expose the checkLineEnd method for jsrepl.

This is OK as it is truly asynchronous - listeners attached in one
invocation will not receive results from another invocation (unlike
the eval method).
Add an endpoint to jsrepl to write stuff.

This .writer method can be seen as the authoritative stdout.
Add InteractiveTerminal (looks crappy now, but it works).