More OO: Refactor GitProgressList (RFC)

Instead of putting everything into GitProgressList and adding more and more fields, use separate classes for the different actions.
TODO: Is this method still needed if we have direct access to the data->path?