SERVER-6243 Stop using shared_ptr<BSONObj> in aggregation

This was unnecessary since BSONObj is a smart pointer internally.
SERVER-9174 Race condition on read_pref_rs_client.js after reconfig

Replaced js test with cpp unit test that does not rely on reconfig.
SERVER-9066: avoid duplicate JS field names
SERVER-7271 Do not exit if a transient config server error aborts a migration.
SERVER-9125 Copy collections faster in the config upgrade procedure