More OO: Refactor GitProgressList

Instead of putting everything into GitProgressList and adding more and more fields, use separate classes for the different actions.