feat(task): input-based caching with files/output/env
Adds `files`, `output`, and `env` fields to `TaskDefinition` and an
input-based cache for `deno task`. When a task declares `files`, Deno
fingerprints the command string, the values of any environment
variables listed in `env`, and the contents of every file matching the
`files` globs. If the fingerprint matches what was recorded on a
previous successful run, the task is skipped. Fingerprints are stored
under `DENO_DIR/task_cache_v1/`.
Tasks without `files` keep the existing behavior (always run). A glob
that matches nothing bails out instead of trivially hitting the cache.
Env capture is explicit so the cache key never depends on variables the
user did not opt into.
The `output` field is parsed but not yet acted on; output capture and
restoration is intentionally left for a follow-up.
Refs #26993