[SPARK-4670] [SQL] wrong symbol for bitwise not

We should use `~` instead of `-` for bitwise NOT.
I think this is actually introducing a bug.  Above we set `def dataType = child.dataType` but this is changing the type to an `Int`.

```scala
scala> ~1.toByte
res0: Int = -2
```

Can you fix and add some test cases to the expression evaluation suite to make sure this doesn't regress again?