Add schedule_suite.sh functionality to teuthology-suite

Some of this is just refactoring ```teuthology.schedule``` so that I could actually add functionality to it without adding complexity to an already scarily-complex module. But a lot of it is also new code. I added some tests where it seemed reasonable.
this is a bit different from the `get_branch_info` below. I don't think there is a need to return `None` here because that is implicit if nothing is returned from a function.

It would be nice if you have the same behavior as `get_branch_info` like:

    if resp.ok:
        return resp.text.strip()