A working repl, implemented horribly.

The basic principle is this:

1. Compile and execute an empty string, but instead of PUSHZ RET at the
   end of the code, emit a YIELD.
2. On YIELD, block the task so that it stops executing.
3. Run the task.
4. Prompt for input.
5. On receiving input, compile it, appending it to the existing
   function in the task.
6. Resume the task, go to 4.

Notable implementation problems:

* Lots of copy-paste-edit code. I don't want to prematurely refactor
  this because it might be entirely wrong-headed.
* Hijacking the YIELD opcode to block the task. I'm not sure what YIELD
  is supposed to be for, but this is probably wrong.
* Manually manipulating the repl tasks's inner frame to overwrite the
  function object. This is horrific.