Don't serialize default primary constructors

Drop "Callable primary_constructor" field, because it requires serializer to
serialize the fact that a class has a primary constructor. Default primary
constructors for objects etc. may not be serialized, because they can be
re-created trivially when they're loaded. 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
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. Drop
"class_object_present" field from binary format, since 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)
Support updated enum entry hierarchy in JVM codegen
Fix AnnotationDescriptorResolveTest, objects are now classes in scopes
Change enum entry resolution strategy in JDR

Enum entry is now resolved into a class with a class object, which inherits
from the former class, as in the other parts of the compiler. Create a special
class EnumEntrySyntheticClassDescriptor which will be reused in deserialization
later
EnumValue now has a ClassDescriptor for its enum entry
Enum entries are put into enum class, not its class object
Put enum entries into enum class in JDR
Put enum entries into enum in lazy resolve
Create classes when deserializing enum entries