Extracted PyStdlibTypeProvider.getNamedTupleType()
Merge PyKeywords with PyNames
Keywords already contains 'as' and 'with'
Refactored PyUtil.getMetaClass() into PyClass.getMetaClassType()

This will allow to deal with metaclasses that are not necessary based
on PSI elements. Also it will help creating stubs for Python 3
metaclasses defined as keyword arguments.
Check __metaclass__ attribute only for Python 2.x
Evaluate metaclass type using TypeEvalContext

It will try custom type providers for evaluating the metaclass type.
Extracted getMetaClassExpression()
Added PyClass.getMetaClassExpression()
Store metaclass qualified name in class stub for better performance
Type provider for enum.Enum members
Fixed PyABCUtil.isSubtype() check for class definitions that have metaclasses
Types of Enum members' fields and type of Enum.__members__
Removed redundant PyTypeProvider.getIterationType()

It was used only for 'file', superseded by 'io' classes. Providers can
provide iteration types via '__iter__' and '__next__'.
fixed PY-11875 Pycharm code analysis stalls on specific code    (caused by AIOOB in getArguments of decorator)
Calculate iteration type via types, not PyClass elements
Fixed NPE
Compare decorators by name preventing unnecessary switch from stubs to AST
Traverse class owners via ScopeUtil in order to prevent switching from stubs to AST
Note about stubs to AST
Find owner via ScopeUtil in order to prevent switching from stubs to AST