log Parse::EDID availability
log Net::CUPS availability
more consistent log messages

The point is to achieve a constitent pattern through the whole programm:
doing something...
first method: success / no result
second method: success / no result
third method: success / no result
pass logger object
use standard syslog message level semantics

This change involves dropping 'fault' level, remapping 'error' level
from 'warning' to 'error', and introducing 'warning' level.
use better suited warning level
log message when those parameters matter
more explicit option name
no need to check load result

We only check loading result for optional dependencies.
more consistency for error messages
no need to check load result

This is another internal module
the logger is always available here
more consistent log messages
fix logger variable name
enable inconditionaly
keep main function minimal
more execution traces
factorize tracing code
drop useless dependency
keep main function minimal