Simplify class object naming madness

- get rid of DescriptorNamer, always use descriptor.getName() instead
- delete AbstractClassResolver.getClassObjectName(), always use
  "<class-object-for-...>", except for the case of built-ins serialization
  (class object names should be replaced by "object" when writing files with
  serialized data for built-ins)
- delete NestedClassResolver.resolveClassObject(), always use the other method
  of this class instead
Remove NestedClassResolver class
Remove various getClassId methods
Rename ClassResolver -> DescriptorFinder

Avoid clash with JavaDescriptorResolver naming conventions
Minor

Remove unused method
Straightforward logic for deserialization descriptors in DeserializedDescriptorResolver
Change signature of AbstractDescriptorFinder#getPackage method
Minor, use existing utility method
Serialize package members and class names

Write KotlinInfo annotation to the facade package class
Introduce VariableDescriptorForObject interface

Add implementations
Use this interface instead of CLASS_OBJECT_DECLARATION key in BindingContext
Serialize properties for objects

A new special CallableKind for properties created for objects --
OBJECT_PROPERTY.
Also fix PropertyPsiData.isFinal() in case of properties backed by fields
Use JetScope as the base interface in JavaNamespaceResolver
Minor
Read KotlinInfo annotations for packages

JavaNamespaceDescriptor creates DeserializedPackageMemberScope in case there is *Package class present for a particular package (other cases work as before)
Deserialize annotations on classes

First version, not all kinds of value arguments of annotations are supported
Create an extension point to DescriptorSerializer

Extract the existing predicate logic into it
Simplify class serialization in codegen
Deserialize annotations on class members

Make 'Callable' message of descriptors.proto extensible, extend it in
java_descriptors.proto with a JVM signature of the member. This is needed in
order for annotation deserializer to find out which member in the compiled
bytecode corresponds to which descriptor in the hierarchy.

Create a new module 'serialization.java' containing everything related to
Java-specific serialization of descriptors.

Add an extension point to DescriptorSerializer, allowing to perform
platform-specific serialization on a callable
Deserialize annotations on package members
Minor, move byte arrays logic to ClassData/PackageData