Add the capability to jump around

Previously, the Instructions class processed the instructions in order,
one after another.  Because of this, it's not possible to do any form
of short-circuiting, because every instruction must be evaluated.  This
change adds a program counter and a step element to the context, and
Instructions is changed to evaluate the instruction at the index
specified by the program counter.  The program counter is advanced by
the amount specified by the step element, which Instructions
initializes to 1 before evaluating the instruction.  Jumps are allowed
by having the instruction alter the value of step.

Note: No jump instructions are added; that will be provided in
subsequent commits.