Adding MTLTransformerErrorHandling

This adds `-mtl_transformedValue:error:` and `-mtl_reverseTransformedValue:error:`.

- [x] add MTLTransformerErrorHandling protocol
- [x] add `BOOL *success` parameter to `MTLTransformerErrorHandling`
- [x] implement MTLTransformerErrorHandling on existing transformers
- [x] use `transformedValue:success:error:` when (de)serializing models, bubble up errors

Fixes #152 #142