Introducing fine grainier way to organize jobs in our CI. Before we had only two modes:

- Stable -> where all jobs are run
- Pull Request -> where only triaged jobs are run

The problem was that there were no fluent way of composing modes (how we are picking up job) and stage ( is it PR, Stable, NIghtly etc.)

My refactoring had a two outcomes. First I detached mode and introduced JobSelection constant which defines if we are triaging or not.

Second, I introduced list of scope for each test instead of enum. Now each job can define what is the scope of this test. Available are:

- Pull Request
- Nightly
- Mainline Nightly (daily run on master,compatible.develop)
- Stable - pre release checks