Add a Rust NullCheckElimination pass

This is a first step towards resolving issues like https://github.com/rust-lang/rust/issues/11751. More changes to make this pass smarter will be coming in the future.