Redundant boxing elimination subsystem

It runs over generated code after inlines was performed
Integrated within ClassBuilderFactories
Tests updated after integration with optimization subsystem
Fixes after integration tests
common parts
Specialized code generation for safe qualified expression when it's within elvis or another safe-call.
In such cases instead of generating ACONST_NULL, if reciever is null, just fall back to null-handler's label of the outer expression
[inline-optimizations] Redundant null check of boxed values detecting and cleaing out
Minor, added Contract to JetPsiUtil.deparenthesize()
Minor, fixes after review
Added unsafe opcodes check for boxed values
Boxing optimization
Dealing with case when boxing value is being stored in a variable
Boxing optimization of Ranges
Added wrappers classes names to JvmPrimitiveType
[boxing optimization] Fixes after review
[boxing-optimization] Support for IFNONNULL opcode in RedundantNullCheckMethodTransformer
[boxing-optimization] Do not remove boxing when possibly unsuccessful CHECKCAST is performed
[boxing-optimization] Optimization of type conversion with boxed values (transform Integer.valueOf(x). .. .longValue() -> I2L and etc)
[boxing-optimization] Refactoring: extracted specific logic into RedundantBoxedValuesCollection class
[boxing-optimization] Refactoring: extracted common logic of working with local variable table into getValuesStoredOrLoadedToVariable
[boxing-optimization] Refactoring: reordering methods to usage places
[boxing-optimization] Changed strategy from enumeration of unsafe operations to permitted + INSTANCEOF added