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.
You don't need a `ParametricOperator` here, those are only need to functions (or operators) that need to be parameterized on a type parameter. Instead, take a look at `VarcharOperators`, I think this will be virtually identical