Handle a parsing ambiguity for '<'

The existing mismatched operators test was in the wrong directory, and
failed for the wrong reason, because it was parsing '<' and '>' as
generic parameters (and succeeding) before failing at runtime. Now
mismatched operators tests operators for which there is no ambiguity,
and correctly fails to parse.

The opening symbol for a generic request now cannot be spaced from the
previous identifier, but if it is not it can still be parsed as an
operator, but the parser will prefer the generic request if possible.

The actual angle bracket operator tests are now in separated, with one
that ensures the brackets are parsed as operators correctly, and another
that just ensures there's no confusion when they're written backwards.
A final running test has been added which would parse as a generic
parameter but the opening angle is spaced from the preceding identifier,
so is parsed as two separate comparison operators instead.