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.
I had wanted to minimize the usage of FakeNamespace because it's sort of a temporary hack until we can refactor the tasks.

I don't mind using args like a dict, but I could try assigning things in args to local variables to see if that helps out the readability some.