GenCode - Add an optional caching mode.

If CIVICRM_GENCODE_DIGEST is set, then GenCode will write out a digest of
all its inputs & templates. If someone tries to rerun with the same inputs,
then GenCode will do nothing.