Add advisory file locking.
These advisory locks are not enforced by the kernel. This means another
non-pwmd process may do with the data file what it wants. It is mainly
for use with multiple instances of pwmd that share a common
"data_directory". The SAVE and PASSWD commands are the only commands
that do an exclusive (write) lock for their duration. The OPEN and
KEYGRIP commands keeps a shared (read-only) lock for its duration. All
other commands do a shared lock upon startup when checking the checksum
of the data file; then the lock is released.
There is the problem that these advisory locks, obtained via flock(),
aren't POSIX. Noteably, they aren't implemented on at least Solaris.