load extensions only after the ui object has been completely initialized
This fixes a traceback printed when hg tries to print another traceback
after an extension fails to be loaded. Add a test for that.
abort: edit failed: false exited with status 1transaction abort!rollback completedabort: edit failed: false exited with status 1transaction abort!rollback completed