[SPARK-4277] Support external shuffle service on executor

This was supposed to go into #3128 as we check this nullness of this parameter in multiple threads.