Add whitespace escapes.

In string literals, a backslash followed by one or more whitespace
characters is replaced with the first of those whitespace characters.
A backslash followed by an ampersand is replaced with nothing,
Parse mixfix identifiers.

Identifiers containing underscores may be used mixfix, such that when
splitting the identifier on underscores would produce some empty
segments, those segments may be filled by a non-identifier term. E.g.:

    // Splitting yields ["from", "", "to", "", ""].
    def from__to__ (...): ...

    // May now be used mixfix.
    from (1) to (10) { sayInt }

    // Postfix desugaring is still available.
    (1) (10) { sayInt } from__to__

This makes 'if', 'else', &c. non-special, frees up the backslash that
previously introduced prefix syntax, and permits multi-word identifiers:

    def is_this_the_real_life (->):
      "is this just fantasy?" say

    is this the real life

Unfortunately, it does not permit 'else if'; you must add an additional
level of nesting. That will need to be addressed in the future.