[SPARK-4183] Close transport-related resources between SparkContexts

A leak of event loops may be causing test failures.
I agree with @aarondav; I think the current behavior is confusing.

I could understand the current behavior if you were able to actually call `start()` again, i.e. if `start() stop() start()` was a valid sequence, but since that sequence currently throws an error then I don't think it's inconsistent for `stop() start()` to do the same.