change IMessageHandler.Handle to return Notification<bool?>

true still treats the message as completed
false still treats the message as error
if null the message is put back in the queue to try again later
if the notification has errors they are written to the log