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.
Why delete this?  There is a string definition for DBRef - ala: http://docs.mongodb.org/manual/reference/mongodb-extended-json/#data_ref  I cant see the harm in having a regression test against it.