Fixes the following bugs:
- use kNoWaitWriteConcern for performing the local update to config.shards in the callback for the shardIdentity upsert
- release the _addShardHandlesMutex before the local update to config.shards
- use Client::initThreadIfNotAlready instead of Client::initThread and Client::destroy