Make protected static visibility reach members in the same package
Support :: references to properties in frontend

 #KT-1183 In Progress
Introduce KClass, KPackage and their JVM implementations
Generate "$kotlinClass"/"$kotlinPackage" reflection fields to every class

Some seemingly irrelevant tests were changed because now there's <clinit> in
almost every class and class initialization begins with executing it
Delete unjustified assert

It's ok to generate <clinit> in the light classes mode, it's not ok to generate
the code in it (if only there was a sane way to assert that)
Support references to top level and member properties in JVM codegen

 #KT-1183 In Progress
Support references to extension properties in JVM codegen

 #KT-1183 In Progress
Support :: references to Java instance fields in codegen

 #KT-1183 In Progress
Support nullable types on left-hand side of ::

 #KT-1183 In Progress
Fail with IllegalAccessException on :: reference to private property

Instead of mysterious NoSuchMethodException
Support 'accessible' for reflected properties on JVM

Calls Java reflection's isAccessible/setAccessible
Extract kotlin-maven-plugin tests into a separate subproject

Because they need kotlin-runtime to run, which is built by kotlin-maven-plugin
Construct reflection objects via static factory methods

JVM back-end now generates invocations of these methods instead of
KClass/K*Property/... constructors for two reasons:

1. It occupies less space in the bytecode
2. We can (to some degree) alter the implementation of the factory methods
   without changing the ABI compatibility version
Fix initialization order of KClass field and class object fields
Add PackageClassUtils.getPackageClassInternalName()
Copy pcollections's HashPMap to kotlin/reflect/jvm/internal

It will be used for caching KClass instances for foreign (Java) classes
Remove unneeded code and beautify HashPMap and its dependencies
Delete unneeded interface dependencies of HashPMap

To reduce class count and to avoid unneeded invokeinterface's
Use pcollections' HashPMap instead of ConcurrentHashMap in reflection
Remove unneeded dependency on ListIterator in ConsPStack