Schemas store validators in slices.

Also remove the schema argument to validator functions. Validators are
now closures and have the value to be tested against (ex: 5 for a
minimum validator) built in.
Make unsupported types return an error.

Specifically validator functions now return an error if given an
unsupported type as an argument.

This also means that tests have to support validate returning an actual
`error` in addition to the normal `[]ValidationError`.
Simplify tests.
Don't unmarshal schema values immediately.

Instead send them to the validator creation functions as
`json.RawMessage` and let them be handled there.
Store default validators in a package var.
Change validators from closures to methods.
Improve type switch and simplify minimum struct.
Validators return validation errors only.
Make variable names more consistant.
Continue improving variable names.
Add comment describing normalizeNumber; improve style.
Optimize schema unmarshaling.

Initialize s.vals with a capacity high enough that no new arrays will
need to be created in the background as its length is increased.
Merge pull request #5 from cupcake/validator-slice

Fill out the structure of the program.