Refactor OverrideImplementWithLibTest

Use JdkAndMockLibraryProjectDescriptor instead of a jar file, which needs to be
regenerated every time binary format changes
Refactor TopLevelMembersInvocationTest

Compile library dependencies in the test instead of storing them as jars in the
repository
Refactor CompileKotlinAgainstBinariesCustomTest

Extract common logic, add NotNull annotations
Merge two tests with almost the same logic
Refactor CompileKotlinAgainstCustomBinariesTest

Each test now supplies its own classpath producer, which for now finds all jars
in the test data directory, but later will compile them using CLICompiler
Remove binary test data for some tests

Launch CLICompiler instead to compile it
Remove binary test data for tests with broken jars
Remove binary test data from completion tests

Delete CompileBinaryTestData script, since there are no tests with binary test
data left in the repository
Write full synthetic method signature for annotated property

This will be needed to support annotated extension properties, since they have
the same name but different signatures
Fix synthetic method generation for extension properties

If several annotated extension properties with the same name were declared in
one class, JVM issued a ClassFormatError, since we generated a synthetic method
for each of them with the same name and signature. Make the signature of this
synthetic method depend on a receiver parameter, if a property has one