Gives some private inner classes better names.

 JAVA-1427
Converting document to string if no codec is a bad idea

The document could be either very very large or not define a proper toString method.
Fix codenarc in groovy test
Updating the Async API to mirror the sync API

JAVA-1325

Conflicts:
	driver/src/main/com/mongodb/FindFluentImpl.java
Updating the rxJava API to mirror the async API

JAVA-1325
Fix observable helper
[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.