modularize build.gradle

build.gradle has become quite monolithic. This splits out components of the build into separate files using apply from: 

* tasks related to dist
* tasks related to docs 
* tasks related to building modules and extensions
* tasks related to hadoop distros

This is a first cut. I expect this can be further refined. Also, it's difficult to verify the build is exactly the same although it looks ok from manual inspection.