Adding UnaryOp Precedence and associativity support.

* Used __visit_with_precedence logic for unary ops.  Same
	handling as BinaryOps
* Ensure ties are handled by checking associativity.
* Added more test cases.