Stability lint checker now handles nested macros.

Closes #17185.
Fix crazy-pants match in Option docs
Use strlen in CString::len
auto merge of #17508 : vberger/rust/stability_lint_for_nested_macros, r=pnkfelix

Finishes the job of #17286.

Now the stability lint will successfully detect patterns such as:
```
first_macro!(second_macro!(deprecated_function()));
```
```
macro_rules! foo (
    ($e: expr) => (bar!($e))
)
foo!(deprected_function());
```
and
```
println!("{}", deprecated_function());
```
even with more levels of nesting, such as
```
println!("{}", foo!(bar!(deprecated_function())));
```
auto merge of #18201 : Gankro/rust/option-what, r=alexcrichton

:whale:
auto merge of #18203 : mahkoh/rust/cstring, r=thestinger

This is about 20x faster on my machine.
Switch llvm submodule to llvm-mirror/llvm.
Modify DebugInfo calls