text: Title: Message passed to `log_message` listener method has wrong type
  Body: Messages should be instances of `robot.result.Message`, but the message that's created during execution, and passed to the `log_message` listener method, is `robot.output.Message` that's based on `robot.model.Message`. There are valid reasons to use a different message type during execution and when working with results afterwards, but `robot.output.Message` should be based on `robot.result.Message`.
  
  Interestingly, the type hint in `robot.api.interfaces.ListenerV3` is wrong as well. It is currently `robot.model.Message` when it should be `robot.result.message`.
  
  This isn't a too severe issue at the moment, but needs to be fixed now that we plan to include messages in the result model also during execution (#5260).