Improve scenario outline support; preload tests

The Cucumber lexer is run on feature files during test registration to
generate the set of suites and tests that will be run. This will
eventually be used to support the `grep` feature, and is currently used
for running scenario outlines.

Scenario outlines are treated as single tests since Cucumber doesn't
currently provide a way to differentiate between instances of a scenario
outline during testing. The number of rows in the outline's example table
is set as the test's `rowCount`, and each time the test is run its
`runCount` property is incremented. When runCount == rowCount, the test
is finished. If any individual run of the scenario outline fails, the
entire scnenario outline fails.

[ci skip]
Add cucumber support self test

80-90% coverage; still needs a scenario outline test

[ci skip]
Fix cucumber loading

[ci skip]