Provide an overall driver, but allow separate steps.

Also, support a scratch directory option, improve docs,
add timing and stage output, support relative paths,
add --dry-run, and do more error checking.