Add oneOf validator.
Add 'not' validator.
Add the 'enum' validator.

Also set the decoder of schema values to use json.Number instead of
float64. This wasn't necessary before because most validators
specifically specified json.Number, e.g.

    type maximum struct {
        json.Number
        exclusive bool
    }

but enum is simply

    type enum []interface{}

so we need to tell the decoder to use json.Number for interface{}'s
dynamic type instead of float64.
Add a real error message for the enum validator.
Change 'not' to a struct.

This allows it to use the Unmarshal method of Schema.
Add the deepequal.go file from the reflect package.

Don't make any changes to the file yet. This leaves jsonschema in a
non-working state (because we now have files with two different package
names in jsonschema), but it means that in the future we'll be able to
track our exact changes to the deepequal.go file.
Get enum working using modified reflect.DeepEqual.
Rename deepequal.go to utils_deepequal.go

This helps someone looking over the code for the first time know that
it's not a core part of the program.
Use Type method for the switch instead of type assertion.

Also remove the now obsolete utils.isEqual function.
Merge pull request #15 from cupcake/more-general-validators

More general validators