Use GLR parsing to fix the parsing of method pointers.

The parser has trouble with constructs like "(myclass::*" and it is
helped out by the lexer, which returns such constracts as a single
token so that the parser doesn't have to deal with them.  However,
the lexer cannot help with e.g. "(myclass<int>::*" because it uses
a very basic ID macro for identifiers.  So we can add a rule for that
to the parser, and use GLR parsing to resolve the conflicts.