Updated Travis configuration to use MongoDB enterprise edition version 2.6
JAVA-1164: Replaced use of ThreadLocal<Random> subclass (used to override initialValue()) with a method that explicitly gets the thread local value and sets it if it's null.
This avoids some nasty classloader issues that show up particularly in web applications, where this anonymous subclass is holding a reference to the entire web app classloader,
which is not released until the thread exits.
Made DBCollection.findOne overloads that take the _id value go through the same code path as the other findOne methods.
 This fixes a bug where the read preference is not being correctly applied when connected to a mongos

 JAVA-1473
Deprecated StringRangeSet.

JAVA-1454
In MongoClientOptions, deprecated heartbeatConnectRetryFrequency in favor of minHeartbeatFrequency in order to comply with the server monitoring specification.

JAVA-1469
In MongoClientOptions, deprecated heartbeatThreadCount as it is no longer configurable.

JAVA-1478
Mechanism properties for MongoCredential are now case-insensitive

JAVA-1462
To ensure that dropIndexes and drop on DBCollection don't throw an exception if the collection does not exist,
changed the check for "ns not found" in the errmsg from an equality match to a contains match.
This was an issue because mongos reports the error like: { new-host-4.home:27018: "ns not found" }

JAVA-1388
Added support in build.gradle for setting the MongoDB URI, and fixed all the tests that failed when that URI contains a credential
Replaced String.isEmpty() with String.length() for Java 5 compatibility
Fixed tests that only run against replica sets and were failing with auth enabled
Updated README with a better description of how to ask for help.