Implement inlining for OpaqueClosure (#40005)
Inlining works basically the same as for regular methods
(except that the info is diffrent of course). One particular
difference is that inlining replaces `getfield` by a new
`getfield_closure_env` function that pierces through the
opaqueness of the closure. The getfield elim pass is taught
about this function and can eliminate it, but there is
also a fallback implementation of it in Core. This is
entirely intended to be a temporary implementation detail
until we do something better for the opaque closure
environment, so it's not supposed to have user facing
semantics.