Support for more addSpecial Query Modifiers

JAVA-1278
Ported support for $numberLong to 3.0.x

Refs: JAVA-1272
Now codenarc is applied to all modules, have all of them using the same version.
Uncommented accidentally commented out lines in the build file.
Adding support for 2dsphere indexes in the 3.0 Indexes class.  Needed an update to driver-compat too for turning string index types into Index instances.
MongoMappingCursor doesn't need to be public
Removed unused method from ServerError helper class
Removed BSONObject dependency from com.mongodb.MongoException
Removed CommandResult dependency from com.mongodb.DuplicateKeyException
Removed CommandResult dependency from com.mongodb.WriteConcernException
Started moving exceptions and related classes from driver-compat to driver:
MongoException
WriteConcernException
DuplicateKeyException
WriteResult
WriteConcern
Moved most exceptions in com.mongodb package from driver-compat to driver
Replaced org.mongodb.DuplicateKeyException with com.mongodb.DuplicateKey
Replaced org.mongodb.MongoIncompatibleDriverException with com.mongodb.MongoIncompatibleDriverException and
org.mongodb.MongoInterruptedException with com.mongodb.MongoInterruptedException.
Removed MongoServerSelectionException
Removed org.mongodb.MongoCursorNotFoundException
Removed org.mongodb.MongoWaitQueueFullException, org.mongodb.MongoExecutionTimeoutException, org.mongodb.MongoInternalException, org.mongodb.MongoTimeoutException
Removed org.mongodb.MongoSocketException and moved all its subclasses to com.mongodb, extending com.mongodb.MongoSocketException
Removed redundant org.mongodb exceptions and moved the reset to com.mongodb
Removed MongoCommandFailureException in favor of existing CommandFailureException.  Warning: this change required breaking binary compatibility, as CommandFailureException depends on CommandResult, which extends BasicDBObject.