Support user-defined prefix functions.

This adds new syntax for invoking functions in prefix form with one or
two block arguments. Prefixing an invocation with a backslash:

    \each 1 10 ..: ->x
      x sayInt

Is equivalent to moving the invocation after the first following block:

    1 10 .. { ->x x sayInt } each

An 'else' clause allows an additional block:

    \if x 3 >:
      "Too big!"
    else:
      "Just right."

This secondary block is desugared in the order it appears, after the
primary one. '_else' is added to the identifier being invoked:

    x 3 > {"Too big!"} {"Just right."} if_else

If an 'else' clause begins with an identifier instead of a block, it is
treated as a nested prefix invocation, so 'else if' does not require an
extra backslash:

    \if x 3 >:
      "Too big!"
    else if x 3 <:
      "Too small!"
    else:
      "Just right."

This desugars to:

    x 3 >
    {"Too big!"}
    {
      x 3 <
      {"Too small!"}
      {"Just right"}
      if_else
    }
    if_else

The 'if', 'option', and 'choice' expressions have been replaced with
builtins, as have their '_else'-suffixed counterparts. This can lead
to poor error messages when '\if' is mistakenly written as 'if'.

Note that expressions containing blocks can terminate the prefix
expression earlier than intended; you can disambiguate these by adding
parentheses. Additionally, parentheses no longer enforce a unary stack
effect, as this proved too restrictive in practice.

Closes #77