Clearly delineate some of the parts of the compiler

* Adds a stream interface wrapper to simplify interfacing with node.js
  inputs
* Extract the compiler function from the mechanics of interfacing with
  the commandline.

This should facilitate work to analyze grammars somewhat, and should make it easier to refactor the compiler into the language definition itself where appropriate.