Implement getNamespace() for deserialized scope

DescriptorFinder now can find packages, pull the method up from
AbstractDescriptorFinder class
Don't load Java's "FooPackage" class as a Kotlin package

Before creating a Kotlin package scope for a classfile, first check if it
contains KotlinInfo annotation
Fix arguments of annotations on lazy classes
Minor, rename method

'resolveAnnotations' gives a false impression that this method will resolve
annotations with their arguments, which it does not
Store ABI version along with serialized descriptors

KotlinInfo annotation now has a version() field, which should be equal to the
compiler's JvmAbi.VERSION in order for this class to properly load and be used.

Create ErrorReporter class, which has a trace to which it can report errors
(now only related to ABI version). This is done because a dependency of
DeserializedDescriptorResolver from BindingTrace would be confusing.
Implementation of ErrorReporter will probably need to change when we untie
deserialization from java-resolve.

Check if PsiClass is actually a compiled class before trying to load serialized
data from it: otherwise it can be a Java source, as was in wrongAbiVersion()
test, and ASM will fail when trying to read that file. Rewrite the test so that
it now has a compiled Kotlin classes to check against (also include sources to
recompile this binary data later, although it won't probably be needed)
Refactor AbstractDescriptorSerializationTest

Use existing utility functions, replace ClassMetadata -> ClassData, add
annotations, etc.