[SPARK-4325] Use pssh.

Replace some bash-isms with pssh to neatly parallelize cluster operations.

Also, decrease questionably high sleep times.
Good question. I know @danosipov reported a similar issue.

With the SSH wait logic in `spark_ec2.py`, we will just wait indefinitely if a slave never comes up. That's because we wait until SSH becomes available across all the nodes in the cluster before proceeding with `setup.sh`.

Perhaps in the future we want to do something more intelligent, but for now I presume this is OK.