Fix enum validation when default attribute exists

>This patch allows an undefined instance to validate correctly with the
“enum” attribute if a “default” attribute is also provided that
validates with the “enum” attribute.

>An undefined instance with with a “required” attribute of `true` will
still fail to validate (from the “required” attribute).

So from reading the [spec](http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.19) I wasn't completely sure if inclusion of the `enum` attribute essentially implied that `required: true`. This patch is for the interpretation otherwise.