Fix vim write-as (:w ex command).

Parser had two major flaws:
(1) It was using a nonbacktracking choice, both of which had the same
parser at the start. Factor this out.
(2) It was doing them in the wrong order, due to a "many" instead of
"many1" in the first parser unconditionally succeeding. So I just
switched the order we try them, since the :w <file> demands a space.

Fixes #658