Support sharded DuplicateKey exceptions

JAVA-1103
For 2.4 when updating a compound shard key I get a duplicate key error - error code: 11000
On 2.6+  For updates I'm getting: `'After applying the update to the document {_id: 1 , ...}, the (immutable) field 'b' was found to have been altered to b: 2'`  error code: 66