Minor, NamedMembers.toString()
Delete ExpressionPosition

It had been deprecated in 838c408
Use StorageManager in AbstractClassDescriptor to create a lazy value
Pull up getClassObjectType()
Pull up getUnsubstitutedInnerClassesScope()
Cleanup ClassDescriptorImpl & ErrorClassDescriptor

ClassDescriptorImpl now extends ClassDescriptorBase and reuses most of its
functionality. ErrorClassDescriptor now is initialized in its own constructor.
Inline trivial arguments everywhere
Change logic of serialization of primary constructors

"Callable primary_constructor" field will be dropped, because it requires
serializer to serialize the fact that a class has a primary constructor.
Default primary constructors for objects etc. shouldn't be serialized, because
they can be re-created trivially when they're loaded, so there are three
options: a class doesn't have a primary constructor, a class has a default
primary constructor, a class has a custom primary constructor.  This explains
the change in descriptors.proto
(TODO squash with previous) Don't serialize default primary constructors
BodiesResolveContext.getClasses()'s key is JetClassOrObject

This has no effect right now, but is a preparation for the objects refactoring,
when BodiesResolveContext.getObjects() will be dropped
Treat anonymous objects as classes (ClassKind.CLASS)

They're not objects per se, i.e. they're not singletons
Change object resolution strategy in TypeHierarchyResolver

Instead of creating a synthetic property descriptor for objects, create a
synthetic class object in it and make it inherit from the object. This way all
of object's members will be accessible via its class object
Drop BodiesResolveContext.getObjects()

Objects are stored in the same place where classes are
Support updated object hierarchy in JVM codegen
Change object resolution strategy in lazy resolve
Change object deserialization strategy

Objects now have synthetic class objects in deserialization as well. "Class"
proto message now can have a synthetic class object proto within, if it's not
contained in any external class file, which is the case with objects.
"class_object_present" boolean field is deprecated and will be dropped, since
its value is equivalent to the presence of "class_object" field
(TODO squash with previous) Drop "class_object_present" field from binary format

Its value is equivalent to the presence of "class_object" field
Resolve enum entries similar to objects in TypeHierarchyResolver
Drop NamespaceLikeBuilder.addObjectDescriptor
Update enum entry resolution strategy in lazy resolve
Change local objects resolution, delete LocalVariableDescriptorForObject

Local objects are now resolved as global ones (with derived class objects)