A combination of wrapping ui and progress bars interrupted by exceptions can
lead to the progress bar not being cleared when the exception error is printed.
This results in corrupted-looking output like this:
updating [===============================> ] 1/2u nresolved conflicts (see hg resolve, then hg rebase --continue)
This is because in ui._progclear, we only check the local reference to the
progress bar, not whether or not there is an instance of the singleton. When a
progress bar is interrupted by an exception, the exception printing in
scmutil.callcatch uses the original instance of the ui object, not the
wrapped copy that has _progbar set.
When consider whether or not to clear the progress bar, check for the existence
of the singleton, rather than just whether or not we have a local reference to
it.