Update to LLVM head and mark various ptrs as nonnull.
librustc: Consolidate the attribute handling for tagging function arguments and returns.
auto merge of #14306 : luqmana/rust/up-llvm, r=alexcrichton

We can now mark arguments and returns as `nonnull` in LLVM. It's still somewhat limited by the fact that LLVM loses this information after inlining but it might help in certain cases.