Allow *,+,-,!,^^ to be defined with infix patterns.
Allow *,+,-,!,^^ to be defined with infix patterns.

Now the declaration "x * y = rhs" can be used to define
a function named (*) without causing a parse error.

Note that "x # y = rhs" cannot be used to define (#),
as it parses as a pattern binding that defines x and y.

Fixes #368.

GaloisInc/cryptol,GaloisInc/cryptol,GaloisInc/cryptol