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.
Instead of doing this, I think we should just change the CAST from VARCHAR to JSON, so that it outputs the fields in sorted order, like the CAST from ARRAY to JSON does