Fixed race conditions in sync and async batch cursor tests
[JAVA-1390] Phase 1: cleaning up the current build. In this commit, the tests for the BSON module are moved into a "unit" folder so that this module follows the same pattern as the other modules.
[JAVA-1390] Phase 1: cleaning up the current build. Using the netflix plugin to give us "provided" scope without making our build file enormously ugly.
[JAVA-1390] Phase 1: cleaning up the current build. Split each project's build settings into a build file per project
[JAVA-1390] Phase 1: cleaning up the current build. Simplified our testing dependencies to use the 4.10 JUnit that's included in Spock. Means we can't use assertNotEquals and assertFalse, but we should be using assertThat anyway.
[JAVA-1390] Phase 1: cleaning up the current build. Added specific checkstyle excludes for failures in old driver API code and removed the less-than-useful checkstyle-lite file so we apply the same checkstyle rules to all code.  Fixed any errors in tests, as these don't impact users.
[JAVA-1390] Phase 1: cleaning up the current build. Correctly separate unit tests and functional tests.
[JAVA-1390] Phase 1: cleaning up the current build. Got rid of legacy folder for tests - tests were either moved into unit or functional, and some tests were cleaned up in the process. There's not enough time to clean up every test, but they have been separated into the correct places and some effort has been made to identify which need more work.
[JAVA-1390] Phase 1: cleaning up the current build. Added missing osgi plugin; added ending blank lines; removed unnecessary dependencies.