ignore stale locks

when an update aborts for some reason and the lockfile isn't reaped, the
whole process will hang forever. This patch makes the updater ignore a
lockfile that's older than 30 minutes
implement PID based locking. closes #60

This avoids stale lock files completely. Even if the app crashes, the
remaining lockfile will be a symlink to a no longer existing process.
Merge pull request #68 from splitbrain/stalelocks

no more stale locks