Starts the REPL. Options can be:

- `prompt` - the prompt and `stream` for all I/O. Defaults to `> `.
- `eval` - function that will be used to eval each given line. Defaults to an async wrapper for `executor.execute`.
- `completer` - function that will be used for auto-completing.

@param {Object} options Options for the REPL
function start(options) {
    options = options || {};

    var prompt = options.prompt || '> ';

    var eval = options.eval || run;

    var context = new ExecutionContext();
    var manager = new BlockManager();
    var ast = new AbstractSyntaxTree([], {}, manager);
    nextLine(context, ast, prompt, prompt, -1, eval);
}