feat(unstable): prototype `deno codemod` subcommand
Adds an experimental `deno codemod <plugin> [files...]` subcommand that
runs a `Deno.lint.Plugin` and applies every fix it reports to the source
files. Where `deno lint --fix` is for continuously enforced rules, this is
for one-off automated refactors (for example migrating off a deprecated
API).
It is a thin layer over the existing lint plugin infrastructure: AST
serialization, the JS plugin runtime, and the fixer/quick-fix application
loop are all shared with `deno lint`. The only linter change is a
`write_fixes` flag so `--dry-run` can compute the transformed source
without writing it.