Log Failure::Creation validation errors as warnings

MSP-9228

To handle all the various types of modules that don't have an RHOST,
make the default #report_failure using valid? and log the validation
errors as a warning instead of using valid! and raising an exception.
This change makes multi/handler and file format exploit not raise an
exception when they 'fail'.
Handle nil handler_modules and session_classes

MSP-9228

Allow either the generic payload or the actual payload to have or not
have a handler_module and/or session_class when calculating
compatibility.