Java 1390 - Phase One: tidy up the current build

...making it simpler to understand/maintain.

Check the individual commits, but changes include:
 - Making the test folders consistent across all modules
 - Fixing the "provided" scope and simplifying dependencies
 - Splitting the mega-build file into one main build file and individual files for each module's exceptions
 - Removing checkstyle-lite
 - Correcting the separation between unit and functional tests, and removing legacy.
Can remove netty from async  - just needed in core.