fix(launcher): report summary when specs fail

On second look - we already report the error code if a child runner exits with non-zero. Instead of keeping a single `launcherExitCode` floating around, let's have a `runnerErrorCount`, and then do
```js
process.on('exit', function(code) {
  if (code) {
    log_('Process exited with error code ' + code);
    process.exit(code);
  } else if (runnerErrorCount > 0) {
    reporter.reportSummary();
    process.exit(RUNNERS_FAILED_EXIT_CODE); // some constant, maybe = 100
  } else {
    // do the check for tasks remaining ...
    reporter.reportSummary();
    process.exit(0);
  }
});
```