Fix pid check when exec'ing a new worker

When a new worker is exec'd (by AsyncObserver::Worker), it will have the
same pid as its parent. This will cause the check in bin/worker to fail
(since the pid file is not removed before exec'ing the new worker).
However, it probably makes sense to not fail if the pid is the same
because it's conceptually the same worker.

Also in here is a change to the symlink directory check because in our
current deploy process there is a brief moment (~200 ms) when there is
no current symlink. Trying to chdir fails and the worker crashes. So, in
that case, the worker should be a bit more patient and wait until the
next check to try spawning a new copy of itself.

Change-Id: I7ff12605dfb242c5cace0940f3f9acd6ac07449c
Reviewed-on: http://gerrit.causes.com/44523
Reviewed-by: Shane da Silva <shane.dasilva@brigade.com>
Tested-by: Tom Dooner <tom.dooner@brigade.com>