Redmine#4482: introduce cf-promises -T option to tag a release directory

See https://cfengine.com/dev/issues/4482

Factored out some common functionality to make this work.

No new behavior was introduced, except:

* `-T DIR` tags that directory with `cf_promises_validated` and `cf_promises_release_id`
* `MINUSF` is not respected in `GetReleaseIdFile` but that's not relevant as far as I can tell