rustc: remove some unnecessary `transmute`s.

These can all be done by implicit or explicit &T -> *T casts, which are
more restricted and so are safer.
auto merge of #12394 : huonw/rust/transmute--, r=pnkfelix

These can all be done by implicit or explicit &T -> *T casts, which are
more restricted and so are safer.
Mass rename if_ok! to try!

This "bubble up an error" macro was originally named if_ok! in order to get it
landed, but after the fact it was discovered that this name is not exactly
desirable.

The name `if_ok!` isn't immediately clear that is has much to do with error
handling, and it doesn't look fantastic in all contexts (if if_ok!(...) {}). In
general, the agreed opinion about `if_ok!` is that is came in as subpar.

The name `try!` is more invocative of error handling, it's shorter by 2 letters,
and it looks fitting in almost all circumstances. One concern about the word
`try!` is that it's too invocative of exceptions, but the belief is that this
will be overcome with documentation and examples.

Close #12037