uncommit: consolidate check for merges into precheck()
uncommit: require -f/--force when files have changes
I used the bailifchanged() function, copied over from Mercurial and adjusted to take a matcher.
While at it, I adjusted the merge error message to be consistent with the one used in Mercurial. The upside is that this should pick up translations, but the downside is that it uses the word 'uncommitted' to refer to outstanding changes.