Extract KForeignMemberProperty out of KMemberPropertyImpl

KClassImpl is now able to create a property by the name, according to its
origin
Modify top-level/extension property hierarchy

- rename KTopLevelProperty to KTopLevelVariable
- create KTopLevelExtensionProperty, a subclass of KExtensionProperty
- create KTopLevelProperty, a superclass of KTopLevelVariable and
  KTopLevelExtensionProperty. (In the future, it will have a container of type
  KPackage.)
Remove default import "kotlin.reflect"

Basic reflection is usable without any imports (with :: literals)

This reverts commit 9503056dd5ca70a90d1f3aff7da67a04a4d4f027.
Fix GeneratedClassLoader so that it loads Package instances
Fix test, remove duplicate annotation

It started to fail only now because KClassImpl constructor is now loading
class' annotations (previously annotations weren't loaded by Java reflection)
Support mapping between Java and Kotlin reflection objects
Provide "equals" and "hashCode" for reflection objects
Provide "toString" for reflection objects
Improve performance of $kotlinClass field initializer

Don't load annotations reflectively in each class' <clinit>