Use console.error when errors happen
Improve error handling in user script execution

Use node domains to route and handle async errors happening in user scripts.

E.g. the following script file will throw without bringing down the whole NodeRunner

// crashing.js
setTimeout(function () {
  throw new Error("WHAT A BUMMER!");
}, 1000);
Better (syntax) error reporting for user scripts (and isolation)

Use node [`vm.runInNewContext()`](http://nodejs.org/api/vm.html#vm_vm_runinnewcontext_code_sandbox_filename)
to execute scripts in a separate context avoiding globals/variable leak across user
scripts (and NodeRunner "main" script context).
Fourth (undocumented) parameter of `vm.runInNewContext()` provide extensive syntax warning.

E.g. slipping a "{" on the first line of a user script like

    // crashing.js
    }setTimeout(function () {
      throw new Error("WHAT A BUMMER!");
    }, 1000);

will result in:

    scripts/everySecond/simple.js:1
    }setTimeout(function () {
    ^
    runUserScript: error running "scripts/everySecond/simple.js" == Unexpected token }
    SyntaxError: Unexpected token }
        at /some/dir/noderunner/noderunner.js:329:6
        at b (domain.js:183:18)
        at Domain.run (domain.js:123:23)
        at runUserScript (/some/dir/noderunner/noderunner.js:328:19)
        at /some/dir/noderunner/noderunner.js:351:8
        at fs.js:272:14
        at Object.oncomplete (fs.js:108:15)