text: Title: `BuiltIn.set_global/suite/test/local_variable` should not log if used by listener and no keyword is started
  Body: `BuiltIn.set_global/suite/test/local_variable` methods are often used by libraries and listeners for setting variables. When these methods are used, they log the name and value of the variable that's set. That's typically fine, but not when they are used by listeners when keywords aren't started.
  
  If they are used in `start/end_keyword`, messages are ignored, because it in general isn't possible to log in those methods. That used to be the case also in `start/end_test`, but that was changed by #5266 in RF 7.2. As the result, a listener like this causes a message to be logged:
  
  ```python
  from robot.libraries.BuiltIn import BuiltIn
  
  def start_test(data, result):
      BuiltIn().set_test_variable('${EXAMPLE}', 'value')
  ```
  
  The logged  message is shown in the log file and it is also in `TestCase.body` in the result model. The message will look like `${EXAMPLE} = value` so it's not very informative without additional context. In the result model it may cause problems with tools that don't expect messages to be present in test body. Because these message mostly add noise and they can cause severe problems, it's better to not log them in the first place. If a listener wants variable values to be shown, they can log such information explicitly with enough context information.