Fix many-to-one reference update

oh, btw found yesterday: .update indeed returns a promise but it uses an api which is inconsistent with the bluebird one used by when (e.g. it doesn't have the .catch method) so better to wrap everything in when.promise and resolve that once the update returns (or use deferred).