Percentage based progress

@csfrancis for review

The code is based on top of pull #4, but you can review just the last 2 commits.

This adds a Progress class to handle progress updates, and prints the progress in percentage.