Replace some verbose match statements with their `if let` equivalent.

No semantic changes, no enabling `if let` where it wasn't already enabled.
allow macro expansions in attributes
fix missed switch pointed out in review plus a few others
Add test for expanding doc strings in macros.
added negative test for macro expansion in attributes
liblibc: getsid() was missing though setsid() was already there.

include <unistd.h>

pid_t getsid(pid_t pid);

CONFORMING TO
       SVr4, POSIX.1-2001.

Signed-off-by: NODA, Kai <nodakai@gmail.com>
test/run-make: another missing $(EXTRACFLAGS).

rust-lang/rust@102b1a5bf1a60eeafb752844e5c98fe5f4e3b992 was not enough!

Signed-off-by: NODA, Kai <nodakai@gmail.com>
auto merge of #19405 : jfager/rust/de-match-pyramid, r=bstrie

No semantic changes, no enabling `if let` where it wasn't already enabled.
auto merge of #19439 : nodakai/rust/liblibc-getsid, r=acrichto

```
#include <unistd.h>

pid_t getsid(pid_t pid);

CONFORMING TO
       SVr4, POSIX.1-2001.
```
debuginfo: Fix multi-byte character related bug in cleanup scope handling.

Also see issue #18791.
Pop on binary heaps does not have constant time complexity.

pop calls siftdown, siftdown calls siftdown_range, and siftdown_range
loops on an index that can start as low as 0 and approximately doubles
each iteration.
auto merge of #19450 : jbapple/rust/pq-pop-time, r=Gankro

pop calls siftdown, siftdown calls siftdown_range, and siftdown_range
loops on an index that can start as low as 0 and approximately doubles
each iteration.
auto merge of #19427 : scialex/rust/doc-attr-macros, r=sfackler

this allows one to, for example, use #[doc = $macro_var ] in macros.
auto merge of #19357 : michaelwoerister/rust/fix-issue-18791, r=alexcrichton

One negative side-effect of this change is that there might be quite a bit of copying strings out of the codemap, i.e. one copy for every block that gets translated, just for taking a look at the last character of the block. If this turns out to cause a performance problem then `CodeMap::span_to_snippet()` could be changed return `Option<&str>` instead of `Option<String>`.

Fixes #18791
auto merge of #19443 : nodakai/rust/another-missing-extracflags, r=alexcrichton

rust-lang/rust@102b1a5bf1a60eeafb752844e5c98fe5f4e3b992 was not enough!
remove two unneccesary directories from configure
auto merge of #19460 : steveklabnik/rust/conf_fixes, r=alexcrichton