cas: write download progress to stdout

This introduces ProgressReader, a reader proxy that keeps track of total
bytes read and executes a callback.

Fixes #208