Adding validation hooks to MTLModel

As mentioned in github/mantle#103, I've added a validation hook for MTLModels.

`-validateWithError:` iterates over all property keys and validates them using the KVO-mechanic of `validateValue:forKey:error:`.

This is useful because MTLModel's `initWithDictionary:error:` only validates the values contained in the dictionary. If your model class is not able to chose sane defaults for some properties, you would have to validate those yourself.

`-validateWithError:` is also a good place for subclasses to implement custom validation logic that spans multiple properties.