Use dummy validators in some circumstances.

For a simple example, we still unmarshal "additionalItems" into a
validator even though its validation will always be handled by "items."
This is to make it easy for resolving internal references that will be
necessary when we add the "$ref" keyword.

We only do this when the validator can contain an embedded schema,
because those are the only ones relevant to "$ref".

This also means that we can remove the code for canceling validator
creation if SetSchema returns an error. The only validator using it was
"patternProperties". Since it contains a schema we always want to
unmarshal it from now on, even if its actual validation will be handled
by the "properties" validator.