errors: let each Abort subclass define its error code
It's more flexible to have the error codes defined on the error types
themselves. That way extensions can easily set their own exit code. It
also means that we can reduce a bit of duplication betwen
scmutil.callcatch() and chgserver.chgcmdserver.validate().
Differential Revision: https://phab.mercurial-scm.org/D10735