title: type hint for class type as argument
body: <p>In the python client library of ros2 there is a function that accepts the class type as an argument (not an instance of that class, but the definition).</p>
  <p>For example</p>
  <pre><code>from std_msgs.msg import String
  #String is python class i.e,
  #class String:
  #    ...
  
  class MyNode(Node)
      def __init__(self):
          super().__init__('my_node')
          self.add_subscription(String, 'chatter', lambda msg : print(msg))
          #Note that we pass in the type String, not an object, i.e String()
  </code></pre>
  <p>How could something like this be annotated using the python type annotations?</p>
  <p>One way would be to use the <code>Executable</code> type hint, as the class type can be called with <code>()</code> to construct an object. But this doesn't convey it's true meaning very well.</p>
  <pre><code>def foo(class_type: Executable):
     obj: Any = class_type()
  </code></pre>
  <p>It would be better if there was something like:</p>
  <pre><code>def foo(class_type: Class):
     object: Any = class_type()
  </code></pre>
  <p>Is there anything like this? What is the standard way to do this?</p>
  <p>Ideally I would like this to work with the MyPy static type check system.</p>