postfix op followed by binary op works ok

In tokenising `3!+x`, the `+` was interpreted as a unary op because it followed another op (this rule is for cases like `x+-y`).
This commit adds a property 'postfix' to op tokens so the tokeniser can do the right thing and parse the `+` as a binary op.

Fixes #287
Exam.tryEnd calls .end with save=true

Whooops! This is why attempts aren't being marked as incomplete!

pertains to #290