Mark buffers that reuse other buffers (#93329)
Provides a way at codegen time to emit code conditioned on
having a fresh allocation vs reusing an input.
- For collective ops, if reusing an input, a copy can be skipped
Pull Request resolved: https://github.com/pytorch/pytorch/pull/93329
Approved by: https://github.com/jansel