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.
it looks like you would have a `kernel_hash` here unless you anticipate not getting one from `get_hash`?