Added PyCallableType.getReturnType() for forthcoming return types caching
Renamed Callable.getReturnType() to getCallType()
Renamed PyTypeProvider.getReturnType() to getCallType()
Added Callable.getReturnType() and PyTypeProvider.getReturnType()

As a side effect, switched to type-based class generics unification in
constructors.
Cache call site independent return types of callables in TypeEvalContext
Inlined getGenericReturnType()
Introduced Callable.getCallType() instead of PyFunctionImpl.getReturnTypeWithoutCallSite()
Changed Callable.getCallType() with explicit 'null' call site to Callable.getReturnType()
Switched to @NotNull call site in Callable.getCallType() and PyCallableType.getCallType()

Changed some usages of getCallType() to getReturnType() and fixed
handling of functions with custom decorators.
Removed TypeEvalContext parameter from PyType.isBuiltin()
Cache return types of callables using TypeEvalContext.getReturnType()
Reuse resolve context with type eval context from the current inspection session for performance reasons
Query only the first result of super and overring method searches for performance resaons
Fix creation of remote sdk in tests.
Breakpoint remove should be executed in write action like breakpoint add in XDebuggerTestUtil.
ResumeAction -> DumbAware
Better logging in debugger communication.
Disable default breakpoints in env debugger tests.
Merge remote-tracking branch 'origin/master'
IDEA-108454 (test added)