mark unique pointer parameters as noalias

The compiler guarantees that there are no other references to a unique pointer when it's passed by-move to a function.