Add a Rust NullCheckElimination pass

This is a first step towards resolving issues like #11751. More changes to make this pass smarter will be coming in the future.