Brave refactoring
Brave refactoring

Instead of having Progress track the last item, introduce an Item()
class and let it keep its own state.

Only the last Item() can be updated, at the moment, but this can be fixed.

Now RepoWrangler needs to keep track of the progress item.  Instead of
keeping state, extract a RepoTask as a separate class that knows what
item it's updating.

These are preliminaries for introducing some concurrency.  Blockers:

- incrementing counters should be atomic
- it should be possible to update any item, not just the last one

mgedmin/cloneall