Rename JetPsiFactory to preserve history
Rewrite JetPsiFactory to kotlin, make project a property

Instead of passing to every function
All static methods are now member functions
Add JetPsiFactory(JetElement) function and use it
Minor: add missing static imports for PsiPackage.JetPsiFactory
[boxing-optimization] initial
[boxing-optimization] integration into codegen system
[boxing-optimization] Tests updated after integration with optimization subsystem
[boxing-optimization] Fixes after integration tests
[boxing-optimization] 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
[boxing-optimization] Redundant null check of boxed values detecting and cleaing out
[boxing-optimization] Minor, added Contract to JetPsiUtil.deparenthesize()
[boxing-optimization] Minor, fixes after review
[boxing-optimization] Added unsafe opcodes check for boxed values
[boxing-optimization] Dealing with case when boxing value is being stored in a variable
[boxing-optimization] dealing with ranges
[boxing-optimization] 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)