tags: unblock log-like template keywords and functions
It checks if ctx will be used in template since loading ctx per revision
could take extra 10-100msec in total depending on the number of tags.
formatter: provide hint of context keys required by template
This allows us to create ctx objects only if necessary.
I tried another idea which is to populate ctx from 'repo' and 'node' value
on demand. It worked, but seemed unnecessarily complicated. So I chose a
simpler one.
The datafields argument is a space-separated string for consistency with
fm.write() API.