mq: really remove undo after a qpush (and after a strip)
For qpush, removeundo has to be called after the transaction has finished.
strip may use unbundle, which also leaves an undo file.
Fixes issue780.
To run the tests, do:cd tests/python run-tests.pySee http://www.selenic.com/mercurial/wiki/index.cgi/WritingTests formore information on writing tests.