model.updateAsync: use complete callback properly

This makes it possible to call neither success or error but still
clean up the XHR reference, e.g. in a workflow where one call to
fetch() is actually serviced by multiple successive XHRs.
That's kind of hacky, but the tbone side of this change is cleaner.