Add sameCollection and sameDB to list of valid cluster options.
Simulate Python's `with` statement in JS.

Passing a function to the assertXX function, e.g. assertWhenOwnColl,
will cause it to get evaluated. The deferred evalulation allows
workloads to be defined without having if-guards essentially double-
checking the result of the asserts.

Note that an explicit return in the passed function is not necessary,
as it will implicitly return true.
Avoid having any stack traces omitted from the logs.
Add seed to list of valid cluster options.
Add a few more comments.
Assign globally unique tids in makeAllThreads
Put tid++ in the loop body
Guard nModified assert based on writeMode()
Cap the number of threads
Only guard nModified
CR changes
Use Array.sum
Some JSHint clean-up in jstests/parallel.
Fix update_inc for sharding
Null out myDB in worker thread
Only call gc once in child threads
Move gc call to parent thread