The ``__args__`` of the parameterized generics for :data:`typing.Callable`
and :class:`collections.abc.Callable` are now consistent.  The ``__args__`` 
for :class:`collections.abc.Callable` are now flattened while 
:data:`typing.Callable`'s have not changed.  To allow this change, 
:class:`types.GenericAlias` can now be subclassed and 
``collections.abc.Callable``'s ``__class_getitem__`` will now return a subclass
of ``types.GenericAlias``.  Tests for typing were also updated to not subclass 
things like ``Callable[..., T]`` as that is not a valid base class.  Finally,
both ``Callable``s no longer validate their ``argtypes``, in 
``Callable[[argtypes], resulttype]`` to prepare for :pep:`612`.  Patch by Ken Jin.  

