Dry run by default. Refactor async madness.

Async madness only slightly less mad. Would appreciate some external
opinions on how to clean this up.

Dry run/--force code closes #2 and closes #3.
Release 0.0.5