Prevent infinite loop when HasMap is empty and values() method is valled
Merge pull request #145 from tomhal/maps.js-changes

Prevent infinite loop when HashMap is empty and values() method is called
#KT-3035 Fixed
EA-41980 - assert: SignaturesPropagationData.getSuperFunctionsForMethod
Added test with class referencing self in upper bound.
Logging fqNames in exception messages
Regenerated test data.
Add removeTypeAnnotation(JetFunction function) utility.
QuickFix for RETURN_TYPE_MISMATCH_ON_OVERRIDE and PROPERTY_TYPE_MISMATCH_ON_OVERRIDE.
Added corner case test for int range iteration.
Fix typo in JetBundle.properties
QuickFix for OVERRIDING_FINAL_MEMBER
Added quickfix for PLATFORM_CLASS_MAPPED_TO_KOTLIN.
Cleanup in quickfix code.
Refactoring: dependency computations isolated in a separate class
Printer now supports any appendable + separated lists
Constructor body generation extracted as a method (+ migrated to Printer for convenience)
Initial support for factory methods
Parts of DependencyInjectorGenerator moved out
The rudimentary support for lazy injection removed
Imports are tracked when types are used