Switch to using nodes and make relevant changes.

Schemas now store maps of nodes instead of maps of validators. This
doesn't matter much now, but in the next few commits nodes (which are
structs) will be expanded to store embedded schemas as well as
validators.

Add two new validators ("additionalItems" and "additionalProperties").
Both used to be handled by their parent validators ("items" and
"properties"), but since they can hold embedded schemas they now need to
be independent validators.

Add NeighborChecker, a new interface for linking nodes. NeighborChecker
can eventually replace SchemaSetter (and will have to for every
validator that can store embedded schemas), but is used now only
for the validators added in this commit, as well as their parent
validators.
Support $refs.

Note that we now have two ways of linking validators together:
SchemaSetters and NeighborCheckers.

SchemaSetters are still the same. They don't have direct access to
neighboring validators, but have to unmarshal them from
map[string]json.RawMessage. This has advantages in that there's no need
for, e.g. an 'exclusiveMaximum' validator because 'exclusiveMaximum' can
just be unmarshaled by 'maximum'.

This doesn't work for neighboring validators that can contain embedded
schemas though, because those always have to have their own nodes for
purposes of resolving $refs. Validators implement NeighborChecker to get
access to these nodes directly, e.g. for 'items' to get access to the
schemas embedded in 'additionalItems'. Because the embedded schemas of
'additionalItems' are linked to directly, if they're changed by the $ref
resolver 'items' will also have access to those changes.

SchemaSetters can be deprecated in favor of NeighborCheckers, though
that would mean adding independent validators (along with dummy
validation methods) for keywords like 'exclusiveMaximum'.
Add a comment to NeighborChecker.
Improve naming and formatting.
Add a TODO about looking into jsonpointer libs.
Don't use cute zero-based indexing for comments.
Control loading external schemas with a Parse arg.
Don't crash tests on Parse errors.
Merge pull request #32 from cupcake/support-refs

Support refs.