[SPARK-2709] A tool to output all public API of spark.

This is not a fully matured tool yet. But a part of it. It tries to scan all public user APIs and generates its type signature.

I feel this can be used to generate authorized or publicized list and also any 3rd party may use the same tool to generate and simply diff with the published list.