rustc: Fail if LLVM is passed an invalid triple

This changes create_target_machine to correctly return a Result (Since
the underlying LLVM function can fail and return NULL)

There's an underlying issue that our build infra doesn't stop you from
getting to this point, but this at least turns a segfault into an ICE.
I've gone up a bunch of frames, and I can't find a `Handler` in scope. Is there somewhere specific I should be looking?

(I also have a vague concern that this is limiting the reusability of a lot of the target selection code. I'm not sure that's actually a problem though, because I don't have a good sense of how reusable `librustc` is meant to be)