Refactor: daemons,libcrmcommon: use volatile keyword correctly
volatile was previously added where it wasn't needed, because signal handlers
added via mainloop_add_signal() are not true signal handlers and thus do not
need to be async-safe. By contrast, volatile previously wasn't used for the
blackbox writing functions, which can be called via true signal handlers.
Also document the various signal handling functions to hopefully make this more
clear in the future.