First (rough) implementation of a cloud3->cloud4 upgrade

This introduces five new mkcloud commands for testing the different steps of
the cloud3 to cloud4 upgrade as outlined in the manual:

"prepare_cloud4upgrade":
    Sets up the Cloud 4 repos on the admin server and
    installs the latest suse-cloud-upgrade code from a git checkout.

"cloud4upgrade_1st":
    Runs suse_cloud_upgrade upgrade for the first time (the pre step)

"cloud4upgrade_2nd":
    Updates packages on the admin node and runs suse_cloud_upgrade upgrade for
    the second time (post step)

"cloud4upgrade_clients":
    Deploys the updater barclamp on all client nodes to install the cloud 4
    packages

"cloud4upgrade_reboot_and_redeploy_clients":
    Final step. Calls suse_cloud_upgrade reboot-nodes and redeploys all
    barclamps with exisiting proposals on the clients

This currently needs a mkcloud deployed Cloud3 with "cloudsource=GM3" and
"TESTHEAD=1" to have all maintenance updates installed.
Less version-dependent upgrade process
Stopping chef-client on admin node to prevent zypper locks

updates

chef-client

checks for crowbar

test

Improving upgrade process
Install barclamps not present on older Cloud

qa_crowbarsetup: chef exit codes and check if zypper is running

This patch adds the following helper functions:

* `wait_if_running` checks if there is a process running and waits until the
process exits, this is useful if you want to use zypper and want to check
that there is no other zypper process running in the server.
* `die` prints a message to stderr and exit with the error code passed as argument.
Update subcommand description
Install barclamps that become available after the upgrade
Improve upgrade target detection
Move setting of source variables to a separate function
Merge branch 'cloud4upgrade' of github.com:nkrinner/automation into nkrinner-cloud4upgrade

Conflicts:
	scripts/mkcloud