This will make it easier to convert this project to Go/xgb later,
even though the SYNC extension isn't currently supported there.
So far unresolved: error handling.
So far using a lockfile, which kind of sucks.
We're going to connect to DBus directly, so we'll see
if it can't be used for our purposes in a simple way.