call cleanup(). if that process still appears to exist then the
init() fails. otherwise some cleanup is performed and the init()
proceeds. a synergy server started while another is running will
now exit immediately without interfering the original server.
work but will let testers make the final call. also fixed
desktop synchronization by setting a variable that was
mistakenly left unset. and tried to work around an apparent
bug in MsgWaitForMultipleObjects() that prevented the service
from closing down properly. start/pause/continue/stop
sequence still doesn't shut down correctly. start/pause/stop
and start/stop work fine.