Create separate scope for seaching sources in libraries

Fix build: avoid situation when GlobalSearchScope.contains() returns false for files
under both class root and source root.
Throw NoSuchElementException in appropriate cases #KT-4998 Fixed
sort and binarySearch methods now have correct default toIndex parameter #KT-4963 Fixed
Uncommented code in data class test for equality and toString
Make empty list produced by listOf() a singleton List object.
Support "key in map" using extension contains() function. #KT-3607 Fixed
Fix String.dropWhile & String.takeWhile
Stream.filterIsInstance has wrong return type #KT-5097 Fixed
Support generating "deprecated" functions.
Created join, joinTo and joinToString functions, deprecated makeString & appendString #KT-3841 Fixed
Migrate to using join* functions instead of deprecated.
Improve iterators' functions deprecation text
Convert iterable of pairs to map, improve generic toMap(mutableMap) function #KT-4166 Fixed
Java to Kotlin conversion: minor refactorings after code review
Java to Kotlin converter: no more 2 conversion modes for each test, just a few tests to test non-standard settings
Java to Kotlin conversion: minor
Java to Kotlin conversion: fixed a few bugs related to modifiers

 #KT-4424 Fixed
Java to Kotlin converter: refactoring work with modifiers, dropped Modifier.FINAL
Java to Kotlin converter: fixed overriding of Object methods
KT-4418 Converter from java should honor "@Nullable" annotations

 #KT-4418 Fixed