Parallel updates: Added ClusterSession, and allowed args in popen

Also
- added back a fixed unittest
- __iter__ - seems reasonable to be looping over machines in a cluster
- there's an issue with the return code when running a command on a ClusterSession, as demonstrated in the final test in parallel.py

For discussion:
- a '+' operator seems useful for machines and clusters, specifically when working interactively