The `write_file` function will no longer overwrite existing files if the
content has not changed. This will ensure file metadata timestamps are
accurate, and reduce unnecessary filesystem activity.
After rendering a template, `tmpl` will now run any commands specified
in the `hooks` property of a template instruction. Hooks can either be
"immediate," meaning they will run as soon as the new file is written,
or "deferred," and will run after all templates have been rendered.
Deferred hooks are deduplicated: if multiple templates specify the
exact same command, it will only be run once. Hook commands can include
the `%s` placeholder, which will be replaced by the path of the rendered
file.