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.
Why not do this earlier so that the ~30 lines above are more readable?