Add support for custom comparators

This is quite useful when dealing with sets of non-trivial `JSON` objects that don't have an `.equals(other)` method or _you don't want to_ give one to them.

For example, a data endpoint response that gives a big collection of `JSON` that are actually instances of `Object`, that you'd like to manage in a `Set` by some criteria, and adding an `.equals(other)` method is not an option in such a scenario because you'd be overriding `Object`'s prototype.