extra: Remove dbg module and rt support code

This stuff is ancient, unused, and tied to oldsched
Resolve globals having different addresses across crates

* All globals marked as `pub` won't have the `internal` linkage type set
* All global references across crates are forced to use the address of the
  global in the other crate via an external reference.
syntax: implement cfg!() which evaluates to true/false where #[cfg] would keep/remove.

Example:

   if cfg!(test) {
      calculation_to_run_only_when_testing();
   }
Add a boatload of Linux x86/x86-64/arm errnos
Relax some atomic barriers. Loosen up all that tension. There, doesn't that feel good?
Document task killing design and relaxed barrier rationale.
Make a forgotten assert in comm be cfg(test)-dependent
Temporary workaround to prevent taskgroup cleanup code from failing without an exception handler.
Make crate tests depend on their extern crates.  Reorder TEST_HOST_CRATES in hopes of exposing future instances of this bug.
auto merge of #8185 : alexcrichton/rust/issue-8179, r=pcwalton

* All globals marked as `pub` won't have the `internal` linkage type set
* All global references across crates are forced to use the address of the
  global in the other crate via an external reference.

r? @graydon

Closes #8179
auto merge of #8216 : thestinger/rust/range, r=huonw
std: Implement SingleThreaded spawn mode for newsched
auto merge of #8175 : brson/rust/nodbg, r=graydon

This stuff is ancient, unused, and tied to oldsched
auto merge of #8188 : huonw/rust/cfg-macro, r=pcwalton

Example:

    if cfg!(test) {
       calculation_to_run_only_when_testing();
    }

Closes #8130.
auto merge of #8193 : cmr/rust/linux-errno, r=graydon
auto merge of #8195 : bblum/rust/task-cleanup, r=brson

In the first commit it is obvious why some of the barriers can be changed to ```Relaxed```, but it is not as obvious for the once I changed in ```kill.rs```. The rationale for those is documented as part of the documenting commit.

Also the last commit is a temporary hack to prevent kill signals from being received in taskgroup cleanup code, which could be fixed in a more principled way once the old runtime is gone.
auto merge of #8202 : pnkfelix/rust/fsk-issue8056-make-crates-must-dep-on-subcrates, r=graydon

Reorder TEST_HOST_CRATES in hopes of exposing future instances of this bug.

Fix #8056
auto merge of #8221 : brson/rust/single-threaded, r=graydon

This is the last major runtime feature needed for the transition to the new scheduler.
Add SendDeferred trait and use it to fix #8214.
Fix nasty double-free bug where a newrt chan could get killed after rescheduling but before suppressing_finalize.