Manage `--dry-run` using skip mappings.

Removes need to consider `--dry-run` in the core.

@mattwynne currently this isn't mapping any hooks at all in `--dry-run`
is that a problem? Or should we map all hooks to skip as well? WDYT?

Can we get an undefined error for a hook? Is there any point?