Simplify erl_parse.yrl precedences

The grammar rules expr and type were defined recursively which
made it longer, harder to read and alter. Operator precedence
was used to separate associativity from sub rules.
Precedences are used by both expr and type rules.
However, refactoring the type rule introduced a new shift/reduce conflict
in grammar:
Parse action conflict scanning symbol * in state 350:
   Reduce to type from var (rule 42 at line 139)
      vs.
   shift to state 351, adding right sisters to var.
Conflict resolved in favor of shift.