Support for partitioning a test suite (to aid in parallelized test runs)

Given a big body of features and scenarios, it's nice to be able to partition the list of tests and run those pieces in parallel. One straightforward way to achieve this is: if there are `N` test runners, then the `i`-th runner only runs test scenario `j` if `(j % N) == i`.

This pull request is an implementation of a filter using the modular arithmetic logic described above. This is analogous to the tag filter which determines which scenarios to run based on tags passed at the command line. To invoke a segmented run of the tests, one runs:

`cucumber.js --parts 3 --remainder 0` in runner 0
`cucumber.js --parts 3 --remainder 1` in runner 1
`cucumber.js --parts 3 --remainder 2` in runner 2