Use addError() to add errors, instead of adding to array ourselves

The important thing here is that additional information can now be saved, which
will be necessary later to deal with specific errors.

E.g. edit conflicts will need to know the id of the revision that has been
inserted most recently, so we'll have to expose that along with the error msg.

Change-Id: I039d4a61cd3f6a5f9a3b64f96427774f20076bdb
Merge "Use addError() to add errors, instead of adding to array ourselves"