refactored how commands are run
command executors are now managed by the Context object; with this change multiple remote{} block with same host/user pairs should not generate multiple ssh connections