Fix return value of save() to only return actually saved fields.

The current return value of save() contains also fields that have been ignored due to whitelisting.
This is highly confusing as the return value should reflect the actually modified fields IMO.
Otherwise the only way to know for sure would be to query again and compare the results.

This should resolve it.