Make sure that the class object class is not accessible from Kotlin
Common functionality moved up
Common code extracted to a method
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
todo
Unused class deleted
StorageManager can create thread-safe memoized functions
Thread-safe ScopeProvider
Migrating to memoized functions
Double-checked locking implementation fixed
Nullable lazy values and memoized functions supported
Getting rid of Optional in favor of nullable lazy values/memoized functions
AbstractLazyMemberScope migrated to memoized functions
createConcurrentMap() is no longer needed
Getting rid of createConcurrentCollection in favor of lazy values
Redeclaration handling in lazy scopes