hook: raise a more specialized HookAbort exception when a hook fails
We need to gracefully handle some aborts for pushkey, especially
because it leads to a user-facing crash over the wireprotocols. So we
need a more specialized exception to catch.
To run the tests, do:cd tests/python run-tests.pySee http://mercurial.selenic.com/wiki/WritingTests formore information on writing tests.