SVN plugin: Never launch configured external diff and diff3 tools.

I have my command-line Subversion client set up to use colordiff
instead of the internal diff implementation, so of course instead of
seeing a nice diff in KDevelop, I got a mess of ANSI colour escape
codes.

This patch disables any external diff or diff3 tools configured in
the ~/.subversion/config file. It does this by modifying
configuration in memory right after it is parsed from disk (or
possibly the registry on Windows). This way, we can safely assume
that running a diff or merge will produce unidiff format, and the
config file doesn't have to be changed.

N.B., it may be necessary to override the merge-tool command
(SVN_CONFIG_OPTION_MERGE_TOOL_CMD) in the same way;

REVIEW: 115444
Reuse code in Refactor widget.

Refactore code out a little bit so that language plugins can reuse
even more code if they want to reimplement startInteractiveRename
function.

REVIEW: 115383
Port refactoring progress dialog to kdevplatform

Also simplify it, port to .ui and show endless progress bar as
UsesCollector doesn't update it's state properly.

REVIEW: 115445