Make sure that the class object class is not accessible from Kotlin
Common functionality moved up
Common code extracted to a method
Double-checked locking implementation fixed
Unused class deleted
LazyTypeParameterDescriptor made thread-safe
Lazy member scopes are now thread-safe.

NOTE: in this implementation there will be exceptions from rewrites on the trace.
Thread-safe lazy values introduced into LazyClassDescriptor
Thread-safe lazy values introduced into FilteringClassLikeInfo
StorageManager can create thread-safe memoized functions
Nullable lazy values and memoized functions supported
Thread-safe ScopeProvider
Migrating to memoized functions and nullable lazy values
createConcurrentMap() is no longer needed
Getting rid of createConcurrentCollection in favor of lazy values
Redeclaration handling in lazy scopes
No lazy values stored for memoized functions with non-null values
Infinite recursion prevented on cyclic class hierarchies
Rename
KotlinCodeAnalyzer interface extracted