Fix some memory bugs in onnx passes (#63754)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/63754
Running onnx tests with ASAN uncovers several memory errors. These two are caused by: (1) iterating the uses list of a node after mutation, and (2) accessing the `blocks` attribute of a possibly deleted node.
To reproduce (this is on a CentOS 7 box):
```
DEBUG=1 CFLAGS="-fsanitize=address" CXXFLAGS="-fsanitize=address" USE_LLVM=$(realpath ../llvm-project/install) CMAKE_PREFIX_PATH=$CONDA_PREFIX python setup.py install
LD_PRELOAD=$(realpath /lib64/libasan.so.5) numactl -C3 pytest -v --cov --cov-report xml:test/coverage.xml --cov-append onnx/test_pytorch_onnx_onnxruntime.py::TestONNXRuntime_opset11 -s
```
Test Plan: Imported from OSS
Reviewed By: ZolotukhinM
Differential Revision: D30493939
Pulled By: bertmaher
fbshipit-source-id: e16e19dc9b4c9896e102ca8bf04c8bedfdde87af