Tear the VM apart.

- Fix my idiocy with the extern table. Was previously impossible to
  determine which extern was to be relocated where since all externs
  were zero and never referenced. Externs are now referenced by their
  index in the externs table (starting at 0).

- asm2bc now produces colors for --print-instrs. Can be disabled with
  --no-colors.

- Trim instruction set a bit:
  * Removed specific PEEK/POKE instructions in favor of PEEK/POKE
    instructions that take a type argument. Might be slower, not that
    important right now.
  * Added POW instruction.
  * J___ instructions all renamed to be relative to zero.
  * ALLOC is now REALLOC.
  * PUSH, POP, and CALL all greatly simplified. No longer take bitmasks
    for registers to push/pop/use as arguments.
  * In place of the bitmask for CALL, it now takes an argument count.
    This is used partly for host function calls when preserving the
    argv array (because the pointer may be invalid if the stack is
    resized) and partly to quickly restore the stack and frame pointers
    rather than have caller/callee handle it. That is, CALL absorbs
    argc stack entries, uses them as arguments, and these are
    guaranteed to be popped on return.
  * RETURN takes no arguments -- it's now just there to decrement the
    current execution sequence.
  * NOP is gone. Not needed -- makes sense for machine code (alignment
    and all that), but less sense for RVM.

- exec_call does not return until a RETURN or TRAP instruction kills
  the call's execution sequence.

- ESP register now used similarly to typical machines -- i.e., top of
  the stack (this stack grows up, basically).

- Currently, the first 8 general registers are nonvolatile. The caller
  and callee do not need to preserve these, exec_call will preserve
  them.

- value_t now has static make functions and assignment operators for
  integer/float types.