Level 4 of the new optimizer: SI-4767

This commit introduces an inter-procedural optimization to directly target final methods in traits,
ie a final method in a trait is invoked via invokestatic (before: virtual dispatch followed by forwarding to implementation class).

Additionally, @inline can also be used for final trait methods, to have method bodies inlined.
sharing immutable Trees for lower GC overhead