Don't return new nodes from UnaryOp.Fold, instead reuse the operand.

This reduces allocations. Also, when types are added, this will
preserve the type of the operand.