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