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.
This implementation has a drawback. The sorting is done 3 times independently for the different steps of the process. This means that for the random sorting, the order could be different for instance