Add support for specifying explicit PATCH fields in Model.toJSON

This is to support sending a PATCH request without needing to pass `attrs` explicitly into `save`. This introduces a new option `fields` that is an array of attribute keys that is used by `Model.toJSON` when `options.patch` is true. Simply:

```javascript
model.save({'a': 1, 'b': 2}, {patch: true});
// vs.
model.save(null, {patch: true, fields: ['a', 'b']});
```

In case you want to save the data after the attributes have already been set.