Delegate Mapper#attribute_set to mapper class
Use instance method rather than class method
Require Reference class in Serializer
Only save attributes which have changed

This commit removes a race condition where Alice and Bob could both
retrieve an object, edit different attributes and when they saved their
version of the object back to the DB, whoever saved last would overwrite
the changes of whoever saved first.