Implement json equality operators

This PR implements the equality operators for the json type and updates the current ``equalTo()`` implementation to use the Jackson library instead of just checking the equality of the backing slices. The reason is that the equality implementation of the Jackson library seems to be closer (not sure whether it implements the spec completely) to the IETF spec (see http://tools.ietf.org/html/draft-zyp-json-schema-04#section-3.6) than just checking the equality of the backing slices. For example, the below test fails with the current implementation while it is OK according to the spec && the new implementation:
```
assertFunction("CAST('{\"a\":1, \"b\":2}' AS JSON) = CAST('{\"b\":2, \"a\":1}' AS JSON)", true);
```

I guess with this PR #1857 is now addressed.
JsonFunctions.castToJson(). We should also move that to VarcharOperators