<NME> runState.js
<BEF> ADDFILE
<MSG> Use Cucumber.Cli to run features

This changes the way we run cucumber to be the same way you would
run it from the command line. This way we get the same default
options that you normally would, i.e. color (see
https://github.com/cucumber/cucumber-js/pull/457#issuecomment-157792257).
It should be more stable as well and not break with internal
cucumber changes.

Also, instead of hacking into one of the formatters to get the
results it uses cucumber's events to do it now.

`cucumberOpts` now have a 1-to-1 mapping to cucumber cli arguments.
For example the following options...

```javascript
  cucumberOpts: {
    format: ['json:./build/test-results/protractor.json', 'pretty'],
    require: ['features/step_definitions/**/*.js', 'features/support/**/*.js'],
    'no-source': true,
    strict: true
  },
```

would be converted to the following cucumber command...

```
  cucumberjs \
  --format json:./build/test-results/protractor.json \
  --format pretty \
  --require features/step_definitions/foo.js \
  --require features/step_definitions/bar.js \
  --no-source \
  --strict \
  foo.feature \
  bar.feature
```

This way there _shouldn't_ be any changes needed in this library to
support new cucumber options.

<DFF> @@ -0,0 +1,8 @@
+var state = {};
+
+state.initialize = function (runner, results) {
+  state.runner = runner;
+  state.results = results;
+};
+
+module.exports = state;

Use Cucumber.Cli to run features