Factor out the bindEnvironment part of writeCallback.

Get rid of numberAffectedCallback; instead, choose the right return value at
every place where we were using numberAffectedCallback and then pass through
bindEnvironmentForWrite. This cleans up a couple places where we were going
through numberAffectedCallback to wrap a result in an object, and then sometimes
getting the numberAffected out of that object and just returning that. Also
ensures that all callbacks for write get passed through Meteor.bindEnvironment
with the same onException function.
Clean up some comments and names for upsert.