Automatically validate models from JSON data

This adds a validation step to `-[MTLJSONAdapter modelFromJSONDictionary:error:]`.

I also had to pull up `-validate:` into the `MTLModel` protocol. I was surprised that I hadn't done that earlier.

Fixes #321
Can you move this above the parameter documentation? Parameters should be the last thing before the “Returns…” paragraph.