Inlineable classes

This WiP PR will host the inlineable classes optimization. Follow up in the comments.
Yes, that's what it means.
We're not inlining a constructor because constructors are inlined in a flattened fashion directly from `inlineClassConstructor` and its two helper methods: https://github.com/scala-js/scala-js/pull/858/files#diff-c408a388af3db2ad0743cef19291d317R1211