Refactor teuthology.orchestra.run

RemoteProcess behaves more like subprocess.Popen, with some important
differences.

A summary of the API changes:
* RemoteProcess.exitstatus is either an int or None; it is never a callable
  nor a gevent.AsyncResult.
* New method: RemoteProcess.execute()
* New method: RemoteProcess.poll()
* New method: RemoteProcess.wait()
* New attribute: RemoteProcess.returncode - alias to exitstatus
* New property: RemoteProcess.finished - added because returncode can be None
  if the connection was interrupted
* run.execute() is removed.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Update users of the teuthology.orchestra.run APIs

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Add RemoteProcess.__repr__()

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Merge pull request #265 from ceph/wip-orchestra

Refactor teuthology.orchestra.run