massive refactor of teuthology.run

A lot of things happen in this pull request:

* ports argument parsing for run to docopt
* adds a FakeNamespace class in teuthology.config that we can use to mimic an argparse Namespace with a teuthology config attached to it.  We do this so we can refactor run, without having to refactor all the tasks. The tasks will take the 
FakeNamespace and should operate as they always did.
* adds a merge_configs function in teuthology.misc that we can use to combine multiple config files into a single one for those commands that support that.
* a big refactor of run to make it more testable.  Increased the coverage from 0% to 86%
* a handful of linting fixes