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 there are a few assumptions being done here (e.g. if the machine type is 'saya' then it must have an armv7l arch).

Even if these assumptions are well known and used throughout in the same manner, it would be nice to at least
have logging here that says something like:

    log.info('saya machine detected, defaulting to: arch=%s, release=%s, pkg_type=%s' % (arch, release, pkg_type))