Run module init and setup scripts in their own shells (SPARK-919)

This commit addresses [SPARK-919](https://spark-project.atlassian.net/browse/SPARK-919), an issue where the `launch --resume` option could sometimes fail due to the top-level setup script exiting if the Spark module was already installed; the problem was that the `exit` command in the Spark `init.sh` script was being executed in the top-level setup script's shell.

@pwendell @shivaram Was there a reason why this originally used `source` to run these scripts?  If we still need to use `source`, then we should find another way to implement defensive exits (instead of just calling `exit`: 1ac895e15c7e43f5de00123196c721c2723c9952).