Obvious fixes + Obvious fixes

Credit goes to mar77i for bringing this topic up and "fixing" the code.

Looking into this issue I found out that mkdir() leaves no overhead over access() when the directory doesn't exist.
More importantly, we push the checking-issue into the Kernel and thus make the code more portable (and readable).

HOWEVER, I don't think these are "obvious fixes", given this new approach doesn't allow to use symlinks as locks any more. We need to discuss if the much shorter code weighs this up.

According to my observations, this code yields a 22k statically linked binary (musl), which is around 6k less than before.