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, 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
Deserialize enum entries as classes with class objects

It's not difficult to deserialize non-trivial enum entries, since they're just
classes in a separate class file, with their own data serialized in an
annotation. On the other hand, trivial enum entries aren't compiled to class
files, so their serialized data should be written somewhere, in this case the
containing enum class. Hence the distinction everywhere between the two kinds
of enum entries and what looks like a lot of hacks

Test data for LoadKotlinCustomTest isn't entirely correct yet ("invisible_fake"
part)
Drop nested_object field from binary format
Delete OBJECT_PROPERTY kind from binary format

We never create properties for objects anymore, except enum entries of Java
enums. Delete PropertyDescriptorForObjectImpl and its usages
Fix two cases of CompileKotlinAgainstCustomBinariesTest

They're almost irrelevant now that objects aren't resolved to properties
anymore
Fix decompiled data for objects and enum entries
Minimize usages of VariableDescriptorForObject
Delete JetScope.getObjectDescriptor(s)()