more generic log messages
create threaded code as a local function
use Thead::Queue to manage threads communication

This is a CORE module, and this avoid explicit usage of threads::shared.
rename methods to avoid warnings

agent->exit() is now agent->terminate()
task->exit() is now task->abort()
better start/stop log messages

- use 'agent' rather than 'daemon'
- emit those message if running as a daemon or a service
- do not emit those messages otherwise
this is an error
lower priority
better log messages
fix typo
admin privileges are only needed for specific tasks
use warning priority for this kind of message