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 think you can get one out of a `Session` via `sess.diagnostic().handler()` (or something attached to a `Session` like that).

Also yeah it's fine to not worry about the reusability librustc, it's not planned to :)