correct misleading error message

When user has no permission to create spool sub-directory, or update pid
file the error:

$ f5gs -s
f5gs: cannot write pid file: /var/spool/f5gs/0.0.0.0:32546: File exists

ought to be 'Permission denied'.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
signal hander should be as simple as possible

The previous code may have had race, or not.  Doing anything more than
informing primary process to start shuting down is too much.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
catch socket accept() errors

Also add stop_server() to faillog() so that clean up at the end is
attempted.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
exit state_change_thread() thread gracefully

Let the thread exit, and join it at stop_server().  This way the msgrcv()
cannot try to get message from ipc queue that is removed.

Note that earlier use of pthread_cancel() was ineffective, because there
was no clean up handler in state_change_thread(), nor the msgrcv() block
was never released.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>