Inlineable classes

This WiP PR will host the inlineable classes optimization. Follow up in the comments.
Consider writing this as a `flatMap`:

```scala
tryNewInlineableClass(className) flatMap { initialValue =>
  tryOrRollback { cancelFun => inlineClassConstructor(
    cls, initialValue, ctor, targs, cancelFun)(cont) }
} getOrElse {
  cont(PreTransTree(New(cls, ctor, targs.map(finishTransformExpr))))
}
```