Rbarlow iso publish reporting

In this PR, I:

* Combined the sync and publish progress reports into one module, and also combined most of each of their behaviour into a superclass.
* Refactor the publish code to provide details to the progress report.
* Made several PEP-8 fixes

Note that there are no unit tests for these progress reports yet. I'll likely be changing them a lot in the next sprint as I write a CLI for ISOs, so I expect a lot of change to come to them.