towards a contained test suite with no system state side effects

Here is a quick snapshot of my current work.
The pattern of always using the EXEC_OPTS variable has two objectives and 1 side effect. (1) it can easily be used to apply options to all invocations of `common.npm` within a test and (2) by including it even when there are no options to send it establishes the pattern to be used, as a placeholder. The side effect of using the EXEC_OPTS variable name is that it makes it clear to the reader of the test case that the second parameter to common.npm is the execution options without the user needing to consult the `common-tap.js` file.

I'd argue that the 3 different ways to invoke npm that I have seen (i.e. exec, spawn, common.npm) happened because the pattern of calling npm was "hidden" or at least hard to find.

I don't have a super strong opinion on this issue. Just stating my observations as an outsider.