Run tests outside of Grunt

Spawn a process.  Grunt doesn't cooperate when trying to run tasks
from inside of another task (which is what the grunt-mocha-test plugin
does).
Ensure all temp dirs are under tmpDir

Need to resolve default options after user-provided ones have been
set, so that the user's intents are honored.
Default engineStrict to false

true seems to trigger a bug in npm install.