SPARK-1094 Support MiMa for reporting binary compatibility accross versions. 

This adds some changes on top of the initial work by @scrapcodes:

The goal here is to do automated checking of Spark commits to determine whether they break binary compatibility.

1. Special case for inner classes of package-private objects.
2. Made tools classes accessible when running `spark-class`.
3. Made some declared types in MLLib more general.
4. Various other improvements to exclude-generation script.
5. In-code documentation.