QtcProcess: Introduce a QtcProcess::Arguments class

This is used to get a platform-agnostic handle on "command line
arguments". It essentially wraps a single QString on Windows,
and a QStringList everywhere else.

As a consequence, several occurrences of #ifdef Q_OS_*
can be removed from the codebase.

Change-Id: Ic93118c1bd0bce0ebb58f416d395dbaebb861772
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
IVersionControl: Implement topic cache in the base class

Derivatives need to derive TopicCache, implement its pure virtual
functions and pass it in IVersionControl's constructor.

Change-Id: I3a904c84541fda95eee75296f86441c4bae55d79
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Mercurial: Add cache for branch query

Change-Id: Ied6f2008324b80b9d4869ba17d67e6d55a91d08c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>