Parse Parens

See:  https://github.com/ucsd-progsys/liquidhaskell/pull/227

Change the parser so that:

1. we **need not** write so many parenthesis, e.g. at function applications.
2. we **can not** write the old 'p ? e1 : e2' format, and must use 'if p then e1 else e2' instead.

All tests pass on goto. This is linked to a corresponding: ucsd-progsys/liquid-fixpoint#38

See the diff below e.g. 'include/GHC/List.lhs' to see the new format. In brief we can write specs like:

    len v = len x + 1

or

    len v = 2 * len x - 1

@ranjitjhala what was the issue with the standard integer parser?