[WIP] Testers refactoring

This is a big refactoring of testers towards a singular interface. This should be the last piece of puzzle for 3.1.

This refactoring abstracts all interfaces into two - `Tester` and `ArrangingTester`. In order to support singular interface, testers `Context` and `RunControl` were introduced to properly encapsulate tester arguments. This refactoring allowed to do a great simplification of hooked and event-dispatching testers.

### Motivation

1. This refactoring should enable very easy fix of #650, #653 
2. Much simplified code of all testers, including decorators
3. Preparation for Testwork extraction and release

### BC Breaks

This refactoring effectively removes old tester interface, which obviously breaks backwards compatibility. Hence, this PR is *WIP*. There will be additional BC-layer for tester extensions created for 3.0. If everything goes well we will fully support old interfaces for extensions that need them.