Allow user to specify a sort algorithm for feature execution order

This feature adds the `--priority` flag to the CLI to allow the user to select a prioritisation algorithm that determines what order features are run in (currently only feature-level sorting is supported because of the way features are lazy-parsed to find scenarios).

Included are two default prioritisers, 'reverse' and 'random'. Both are useful for detecting dependencies between features.

```bash
bin/behat --priority=random
```

This feature also allows future extension by registering new prioritisers via tagged service definitions. This would enable more sophisticated prioritisation algorithms e.g. history-based, diff-based etc.
Because $iterators is passed each time, I was unclear whether there is a scenario where the array would change between the two executions?

If there isn't I can cache it here.