refactor of teuthology.run

This pull request does a few things:

* ports the argument parsing for teuthology.run to docopt
* refactors teuthology.run for easier testing, increases test coverage to ~80%
* creates teuthology.config.FakeNamespace that mimics and argparse namespace that's had read_config ran on it.  This allows us to refactor all the tasks at a later date.
* makes some additions to teuthology.config.YamlConfig to make it act more like a dict.  Still needs some work though to be able to use this with the tasks, etc. instead of a dict.

I ran tests on this branch in the octo lab using the smoke and samba qa suites.  Everything seemed to be in order.
Typo. Also mention that you're returning the tasks list.