Minor progress bar tweaks

As discussed in the now closed #493:

- The default progress bar is only used if `True` is passed in to the `ProgressTracker` (or the `wrap_with_progressupdater` function).
- If `False` is passed to `wrap_with_progressupdate`, `NoProgressBar` is used.
- `ProgressBar`s now accept a string which represents the task being tracked. It selfishly defaults to "Simulation", as that's what we use it for, but it'll be handy to be changeable if we ever track the build process also. The default message when a progress bar finishes is now "{task} finished in {time}" rather than "Done in {time}".
- The `AutoProgressBar` now updates as usual if the task is finished. This is so that, even if the bar isn't initially shown and updated, there's still a handy message that the simulation finished.