Simpler, stricter and complete precedence and associativity tests.

Fix #38.

### Parse test:
* Complete unit tests for operator precedence.
* Complete unit tests for operator associativity.
* Add helper function to assert parsing failure; use it.

The precedence tests are written vis a vis the spec (pg. 14). To avoid quadratic blow-up of testcases, only operators of adjacent levels of precedence are (extensively) tested, with a few exceptions. The tests are meant to guard against accidental errors/omissions, not deliberate messing with the parser.
This is illegal in the language.