No need for owned closures in the off-stack call path

Got word from on high that it's OK to modify values on the calling
task's stack even in an off-stack call. Hence the greatly
simplified call logic, passing a stack closure in every case,
no need to branch between the on- and off-stack cases in
generated Rust call code.