use precedences to recreate parentheses with unary operators

added unary operator flag variable to stack and argument to push with a
default of false (only unary operator recreate function sets this
argument to true)

modified unary operator recreate function to surround operands with
parentheses if top stack item is not a unary operator and precedence of
operator is higher than the operand

added more unary operator tests to validate several unary operator with
parentheses situations