text: Title: `lineno` of keywords executed by `Run Keyword` variants is `None` in dry-run
  Body: When executing a dryrun and having any kind of `Run Keyword` variant, the child keyword will have wrong type in ListenerV2.
  
  `lineno` should be `int` but in that specific case it is None.
  At least according to the typing of `StartKeywordAttributes` and the other situations, where a line number is not available.
  
  Example:
  ```robotframework
  *** Settings ***
  Library    Listener.py
  
  
  *** Test Cases ***
  Reproduction
      Run Keyword    Log    this has the wrong lineno
  ```
  
  ```python
  import json
  from robot.api import logger
  
  class Listener:
  
      def __init__(self):
          self.ROBOT_LIBRARY_LISTENER = self
          self.ROBOT_LISTENER_API_VERSION = 2
  
      def _start_keyword(self, name, attributes):
          logger.console(f"\nKeyword started: {name}")
          logger.console(f"    attributes: \n{json.dumps(attributes, indent=2)}")
  
      def kw(self):
          pass
  ```