Better progress bar for syncing

Made changes so that a progress bar cannot jump back (especially while
syncing) and changed the way synchronising code presents progress so
that it appears more representative.

Closes #46