Functional tests for command and legacy batches
Fix nMatched calculation for legacy updates

If we are not performing an upsert, "n" is simply "nMatched" and there is no need to consider "updatedExisting".
Fix legacy writeConcern result structure and functional tests

Batch execution should have one write concern error at most. Legacy batches should not append it to a "writeConcernErrors" array, as that would be inconsistent with the actual command results.

GLE and write command option for WC timeout is "wtimeout", but the driver requires "wTimeoutMS" in both MongoWriteBatch and legacy write methods. Ensure "wTimeoutMS" is properly converted to "wtimeout" when issuing a GLE command.
Test case methods to check for various server topologies
wip