SPARK-782. Shade ASM

This solves the issue of Spark's version of ASM conflicting with the ASM versions of its transitive dependencies (e.g. Hadoop).  The ASM packages, with their package names modified (shaded), become included in jars of the submodules that rely on ASM.  This also occurs for the assembly jar. 

I couldn't figure out a way to do this with sbt.  I considered adding this as a profile, but couldn't think of a situation where it would be beneficial to turn it off.