Only 'put' changed attributes

This changes #update! so it only pushes the changed fields to the API.

Specs are green, and I've tested it to some extend, but it would be good if somebody else could have a  look if it produces some side-effects that the tests don't cover.