If test commands are enabled, $merge can now be run against a secondary of a replica set. It runs the read part of the operation locally but targets any insert, update, or DDL operations to the replica set primary. No attempt is made to keep our view of the primary fresh during execution of the $merge. No attempt is made to recover if a stepdown occurs or the primary becomes unavailable during the course of the $merge. (In a later commit this will no longer be gated behind test commands, once the project is finished out).