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.