Replace update.sh functionality

Currently we internally use a couple shell scripts to parse arguments and make sure a copy of ```ceph-qa-suite``` are checkout out before we run ```teuthology-suite```. That always seemed brittle and, more importantly, not fair to the community since those tools were kept out-of-tree. This PR adds the same functionality to teuthology itself.
this whole subprocess call could be a single function, the one that clones, that way you don't make it a dependency of all the other parts you want here.

if you have some logic you want to test in that one subprocess call, you could 'inject' the subprocess callable, changing the signature a bit.

For example:

    def git_clone(repo_url, dest_path, _subprocess=None):
        _subprocess = _subprocess or subprocess  # this allows you to use normal subprocess, but inject at test time
        proc = _subprocess.Popen(
        ...

And then at test time, you can import this one function, that only clones, and pass in your fake subprocess module that
can raise exceptions etc.. so you end up testing the logic for the error handling