Add --dry-run option to prune.

Comments:

With print_verbose, I wasn't sure whether to use a comma or a percent sign to separate the formatting string from the object to be formatted, but I at least made the existing calls consistent.

In the tests, I switched to using assert_in, as it shows better output when the assertion fails.

I updated the tests to use --keep-daily instead of --daily.

Question:

At the end of run(), one might consider adding two lines in order to force verbose mode when using "prune --dry-run", as otherwise there isn't much point.

        args = parser.parse_args(args or ['-h'])
        if argcs.func == do_prune and args.dry_run:
            args.verbose = True
        self.verbose = args.verbose
        update_excludes(args)
        return args.func(args)

Not sure.