Switch from -| to -<mode_name> grammar syntax.

As part of this change, the start: method is replaced with
mode_params: which is called immediately after the new mode
has been pushed, and is expected to return a dictionary of
the new params.