Candidate: SchemaKey

The idea is to have a unique key for JSON Schemas, whether anonymous or
"located" (ie, with an absolute JSON Reference), with a fast .equals() and
.hashCode() so as to be useable as, for instance, keys in a HashSet.

For this, we separate two cases:

* anonymous schemas; they have no location, but we can generate a unique id for
  them;
* "URI-located" schemas; they do have a location.

Each of these two cases are implemented in two distinct classes. The way
`.equals()` is implemented for each of them, we are also guaranteed that an
anonymous schema key will never be equal to a URI-located schema key.