[SPARK-4281][Build] Package Yarn shuffle service into its own jar

This is another addendum to #3082, which added the Yarn shuffle service to run inside the NM. This PR makes the feature much more usable by packaging enough dependencies into the jar to run the service inside an NM. After these changes, the user can run `./make-distribution.sh` and find a `spark-network-yarn*.jar` in their `lib` directory. The equivalent change is done in SBT by making the `network-yarn` module an assembly project.
My understanding is that the shading plugin is primarily used to create uber jars, and the shading dependency part is just a generally useful thing in this process: http://maven.apache.org/plugins/maven-shade-plugin/. This is how we create assembly jars in say the `example` and `core` modules, except the difference here is that we don't actually need to shade any dependencies. I think this is a pretty standard thing to do and I'm not sure if a comment is necessary.