Removed CursorFlag dependency in FindOperation

Added boolean properties for the individual CursorFlags in FindOperation

JAVA-1443
Added boolean parameters to QueryProtocol / QueryMessage
Remove CursorFlag use in MongoCollectionImpl

JAVA-1443
Removed CursorFlag

JAVA-1443
Remove CursorFlag from ListCollectionNames & ListIndexes operations

JAVA-1443 JAVA-1455 JAVA-1456
Add some generics flexibility to RootCodecRegistry
Added new helper API for admin functions

Removed old Administration classes, merged functionality into MongoDatabase / MongoCollection
Updated admin operations to follow builder style options.
Removed dropDups support
Minimal update of async / rx projects to updated operations
Added OperationExecutor to Mongo and now used in DB and DBCollection

JAVA-1332 JAVA-1412
Support legacy dropDups

JAVA-1412
Documentation updates for com.mongodb.client

JAVA-1411
ServerAddress now lower-cases all host names.
Check ok field in ismaster result when creating ServerDescription
Added Cluster.getDescription method with no timeout that always returns the current cluster description, even if the cluster type is not yet known.
Added Parameterized JUnit tests for MultiServerCluster and SingleServerCluster, implemented in terms of the JSON tests
defined in https://github.com/mongodb/specifications/tree/master/source/server-discovery-and-monitoring.
Those tests are copied into this repo from git hash 58dd99ea523631bd0360503f629aba8f1b468975.

JAVA-1447
Bumped maxWireVersion that the driver supports to 3, which will be the maxWireVersion for server release 2.8

JAVA-1460