Don't pre-join the arguments to run_command.

Move step counting into sub_range_generator.

Add step as a parameter to range_repair so that it can be a self-contained
thing for execution by the worker pool.  Also move all of the logging and
error handling that was *around* range_repair *into* range_repair.  Don't
return anything from range_repair.

Update docstrings and add a couple more useful comments for those who follow.