add sret + noalias to the out pointer parameter

This brings Rust in line with how `clang` handles return pointers.