Make KM reasonably threadsafe

WARNING: This is a backwards incompatible change. The 'identify'
method is gone, and all methods that previously used the globbaly set
identity now require it to be passed before other arguments. So:

KM::record(action, props) -> KM::record(identity, action, props)
KM::set(data) -> KM::set(identity, data)

KM::alias doesn't require the identity to be set, and keeps the same
signature as before. Internal methods (i.e., generate_query) were
updated accordingly.

Other internal changes include file locking when writing to the query
log file, and copying and truncating (with locks) instead of moving
when processing the log file for sending.
Merge branch 'threadsafe' of git://github.com/pazustep/km
Version bump.
Update CHANGELOG.