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.
#!/bin/sh
hg init
python -c 'print "confuse str.splitlines\nembedded\rnewline"' > a
hg ci -Ama -d '1 0'
echo clean diff >> a
hg ci -mb -d '2 0'
hg diff -r0 -r1