Stop using @ExtCtxt
Remove unecessary extern "Rust" specifiers
Stop passing duplicate parameters in expand
Fix a deadlock in a libgreen test

Turns out when you grab an OS mutex, you need to be careful about when and where
things are scheduled!
auto merge of #11204 : alexcrichton/rust/issue-11200, r=cmr

Turns out when you grab an OS mutex, you need to be careful about when and where
things are scheduled!

I've confirmed that I could fairly reliably get a deadlock (1 in 100 times ish) before this, and I cannot get a deadlock after this (after 1000+ runs).

Closes #11200
Update llvm.
auto merge of #11181 : luqmana/rust/up-llvm, r=alexcrichton

No longer need to handle GNUEABIHF and hard floats since LLVM should now choose the right default. Fixes #11164.
Make ast_fold take &mut self
Start passing around &mut ExtCtxt
Remove @muts from ExtCtxt
auto merge of #11168 : sfackler/rust/de-at-extctxt, r=alexcrichton

* Pass `&ExtCtxt` instead of `@ExtCtxt`.
* Stop passing duplicate parameters around in `expand`.
* Make `ast_fold` methods take `&mut self`.

After these, it should be possible to remove the `@mut` boxes from `ExtCtxt` altogether, though #11167 is doing some of that so I'm holding off on that for now. This will probably conflict with that PR, so I'm guessing that one will have to be rebased on top of the other.

r? @pcwalton