JS backend: removed the unnecessary main function from some tests.
JS backend: rename test mangling -> manglingStability. And make it independent of structure of generated code.
JS backend: fixed using the stable mangling for extra cases.
JS backend: add workaround for mangling Any methods(equals, hashCode and toString) always.
JS backend: fixed name clash when override native class.
JS lib: drop es5 shims.
Fixed problem with overriding method with non-trivial raw type (when erased type parameter has upper bound)

Also added cases for the code which was changed.
Add notNull annotations to VariableAsFunctionResolvedCall
JS backend: Create new CallInfo
JS backend: Add api for call builder and CallCaseDispatcher
JS backend: Add FunctionCallCases
JS backend: Add VariableCallCases (not all cases supported)
JS backend: Add DelegatePropertyAccessIntrinsic
JS backend: Add support for safe call
JS backend: Fix super property access call
JS backend: Use new CallBuilder for property access
JS backend: drop old property access translator
JS backend: simplify canBePropertyAccess method
JS backend: Use new call translator in CallExpressionTranslator and move invoke intrinsic to FunctionCallCases
JS backend: Fix tracked used descriptors