Loading/saving progress bar

The progress is not particularly accurate. It simply uses the current / total number of records written/read as indication. Cell records are currently the largest by far, but there is a good chance that could be optimized using a change tracking system.

The saving progress code is a bit boilerplate-ish. Feel free to suggest alternatives, but I'd like to avoid building this functionality into ESMWriter.