Runtests refactoring: part II

Сократил число экземпляров класса, убрал методы, изменяющие его состояние, переписал часть функций для большей читаемости. 
Если признать, что поддержка неиспользуемой фичи count_per_group излишня, и заменить это на обычный count, это превратится в маленький и более читаемый цикл.