Simplifications due to rustc improvements

rustc seems to now be able to do better escape analysis and conclude
that the lambda never leaves scope, and that it is therefore safe for
it to capture a borrowed pointer.

Remove the manual lambda lifting, since the compiler can now do it for
us.