JAVA-1570

Renamed MongoQueryFailureException to MongoQueryException
Renamed CommandFailureException to MongoCommandException
Renamed com.mongodb.bulk.BulkWriteException to com.mongodb.MongoBulkWriteException
Added MongoNodeIsRecoveringException and MongoNotPrimaryException

 JAVA-1570
As above.  There is no MongoDuplicateKeyException.  DuplicateKeyException was introduced in 2.12 as a replacement for the awful nested class MongoException.DuplicateKey, which I removed in this PR.

This code path is only for legacy API, as it's used by InsertOperation/UpdateOperation.  The CRUD API, as with .NET, only uses MixedBulkWriteOperation, which throws bulk write exceptions.