Added BatchCursor interface and implementation to expose batches directly in core and using it in all operations

  JAVA-1546
Moved MongoCursor from core to driver and into com.mongodb.client
Created AsyncBatchCursor and implementation, while allows users of core to operate on query batches directly
rather than through an abstraction which hides the existence of batches.  Among other things, this will allow
users of core to implement back pressure.

 JAVA-1546
Relaxing test to handle change in error message from MongoDB 2.8
When explaining a find operation, set the limit to the absolute value of the limit * -1

 JAVA-1559
[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.