keyfile: add advisory locking
keyfile: add advisory locking

Use fcntl() on a lockfile when accessing a keyfile.

Now reading the keyfile, notifying local processes of changes in it,
applying changes from local request and rewriting it is all done under a
single acquire of the lock.  This effectively means that concurrent
changes made to the database across several machines sharing a home
directory over NFS will be seen by all machines as having occurred in
the same order (decided by who won the race to the lock).

GNOME/dconf,GNOME/dconf,GNOME/dconf,GNOME/dconf