Significantly improved startup time

As mentioned in issue #214, the expression_with_unary_operator rule caused trouble which lead to a long construction time of the grammar and therefore to a very long startup time of Pash (and tests).

The proposed fix is maybe not very pretty, but it decreases startup time from about 3,4s to 0,8s on my computer.
All unary operator expressions except the cast expresions are now joined in one rule. The AstBuilder later on differentiates between them.
The cast expression had to stay a seperate rule, because double casting like "[string][int]'5'" wouldn't parse anymore. I don't know exactly why this is, but having cast_expression as a seperate rule doesn't seem to have a big influence on the startup time.