text: Title: Add type information to the visitor API
  Body: Visitor methods currently look like
  
  ```python
  class SuiteVisitor:
  
      def visit_suite(self, suite):
          ...
  ```
  but we should change them to
  ```python
  from robot.model import TestSuite
  
  class SuiteVisitor:
  
      def visit_suite(self, suite: TestSuite):
          ...
  ```
  The main benefit is getting automatic completion by IDEs.
  
  Because visitors can be used both with `robot.running` and `robot.result` models, the documentation should mention that concrete visitor implementations may want to import more detailed types:
  
  ```python
  from robot.api import SuiteVisitor
  from robot.result import TestCase
  
  class TestTimePrinter(SuiteVisitor):
  
      def visit_test(test: TestCase):
          print(f'{test.name}: {test.elapsedtime}')
  ```
  
  This ought to be so easy that can be easily done in RF 6.1. Adding needed imports to the top of the module is likely to create a circular import, but we can avoid that by using `if TYPE_CHECKING`.