Change normalized callback arguments.

After this commit the callbacks for the write functions are as follows.

```
db.users.insert(document, callback);    // => callback(err, [document])
db.users.save(document, callback);  // => callback(err, document)
db.users.update({ ... }, { ... }, callback); // => callback(err, lastErrorObject)
db.users.remove({ ... }, callback); // => callback(err, {n: amountRemoved})
db.users.findAndModify({ query: { ... }, update: { ... }}, callback); // => callback(err, document, lastErrorObject)
```

The reason for these changes is that sometimes you might want to save a document and retrieve the
ObjectId it was saved with.

The problem of `save` returning '1' when the operation was an update is solved
here, and a test case was added for this as well.