[WIP][SPARK-3797] Run external shuffle service in Yarn NM

This creates a new module `network/yarn` that depends on `network/shuffle` recently created in #3001. This PR introduces a custom Yarn auxiliary service that runs the external shuffle service. As of the changes here this shuffle service is required for using dynamic allocation with Spark.

This is still WIP mainly because it doesn't handle security yet. I have tested this on a stable Yarn cluster.
Apparently if this map is empty, then YARN won't ever register with the auxiliary service. So I believe this is a place holder to force registration. However now that I think about it @andrewor14 - can we just go ahead and pass the secret key here? We should have it since we are inside of the executor runner.