Convert tabs to spaces.

Tabs only used in compiler/context.js. Probably a mistake, because tabs
are the worst.

Expand with tabstop=4 to match other files.
Add speculative REPL implementation in jester.
Change the language to support the REPL.

This includes support for eval and null.

`eval` is parsed and compiled as an expression statement with one
argument, which can of course be an expression. This results in the
expression being evaluated to the Z value, followed by an `EVAL` opcode.

`null` is a sigil value, added now as a return value from the `read`
stdlib function to indicate EOF.

Neither `read` nor `eval` are implemented yet.
Implement input builtin. Also fix prompt args.

Add an example to show it working: name.jester.
Stub for EVAL opcode implementation.
Parse eval as an expression statement.

Previously it was a statement with no l-value. Now it is parsed as part
of the `parseExpression` path, so the return value of `eval` can be
assigned.
Throw parse error for `eval` with no args.

This is better than a compile error.
Fix that input builtin failed to resume task.

Functions called with a task in state RESUMED need to set its state to
RUNNABLE, and I forgot, causing the VM to crash.
Update the REPL to store and print a return value.

Code is now evaluated and executed, and the return value printed
afterwards. Update the prompts to follow IRB.
Implement eval opcode.

A slightly hacky way to implement eval, reusing the current function
context but creating a new and separate list of opcodes. These are then
executed with a separate instruction pointer; at the end of the code,
execution returns to the normal function state.

The switch between normal function code and eval-generated code is
achieved by using a switchable `next_op` function. In normal function
code, this is simply `return code[frame.ip++]` as before. With eval
code, the `next_op` function is a closure over the generated code and
associated instruction pointer; when the end of the code is reached, it
resets the `next_op` function to go back to normal function code.

There are probably some other problems with this that I don't know
about. The compilation stage just reuses the same stack as the original
function code used, but this seems to work in my initial tests.
Merge pull request #1 from alisdair/master

Work in progress on in-language REPL