Refactoring of arbiter to add flexibility and to allow reuse kernels
This is major refactoring of arbiter in order improve the use of kernels and simplify them.
Features:
- run multiple kernels
- partial selection masks
- expression with selection, including expression for final selection
- reduction instruction for group matcher based on selection masks
- output schema update in kernels