Redmine#4482: introduce cf-promises -T option to tag a release directory
Merge pull request #1419 from tzz/feature/redmine4482-cf-promises-tag-release

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

This reverts commit 70cc8ad9df45ca10d23f179d75611ab067ccafd2.

It breaks masterfiles/tests/acceptance/promises/promises.cf test on
certain platforms, like RHEL4.
Make backups of the lock database after a cf-agent run.

This is in anticipation of turning on NOSYNC for the lock database, in
order to improve performance. But this leaves the database open to
corruption in case of system crash. To deal with that, while still
maintaining performance, we make a complete backup of the database
file at the end of an agent run, which is fsync'ed to disk in order to
survive a crash.

Later, if we detect that the database timestamp is older than the boot
time, we assume that there has been a crash, and restore the database
from the backup to avoid potential corruption.
Implement fsync() and GetUptimeSeconds() on Windows.