Реорганизация тестов

Снова вынес тесты в отдельный класс, завел иерархию классов для
тестирования и пару интерфейсов. Словом, немножко ООП головного мозга