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.
test radosgw with command line interface

do only keystone-based tests, do not expect glance has swift backend

added a test of S3 API

merge S3 testing into swift API testing

verify file content after uploading & downloading
use cmp instead of sha1sums
Merge pull request #94 from jsuchome/radosgw_tests

test radosgw with command line interface
fix usage text

120e99d3dd broke the usage text since default variables need to be set
prior to calling parse_opts() which calls usage().
extract zypper_addrepo() and zypper_set_priority() functions
remove Devel_Cloud_Shared_11-SP3_Update

This was omitted from setup_zypper_repos() when originally introduced.
automatically trust GPG keys for new repos
fix cloud_admin pattern installation check

zypper -n patterns lists all patterns by default, so I'm
not sure how this check ever worked before.
do validation on cloud version number
Cloud 4 and all subsequent versions will support HA

(probably, it's a safer default for now anyway ...)
qa_crowbarsetup: avoid nested conditions
mkcloud: revert xen support workaround

needs a kvm with bnc#886535 fixed
The workaround was never really working with SP3 because of bnc#806692
qa_crowbarsetup: cd /root before screen
qa_crowbarsetup: skip radosgw tests when not deployed
mkcloud: add cloudrestart command
mkcloud: stronger check for concurrent uses

the outgoing code cried wolf when i had mkcloud open
in a text editor, as well as when i tried to run mkcloud
with script -c "... mkcloud ...".
Update path to tempest_cleanup.sh