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.
str: Add method .into_owned(self) -> ~str to Str

The method .into_owned() is meant to be used as an optimization when you
need to get a ~str from a Str, but don't want to unnecessarily copy it
if it's already a ~str.

This is meant to ease functions that look like

  fn foo<S: Str>(strs: &[S])

Previously they could work with the strings as slices using .as_slice(),
but producing ~str required copying the string, even if the vector
turned out be a &[~str] already.
Make crate tests depend on their extern crates.  Reorder TEST_HOST_CRATES in hopes of exposing future instances of this bug.
Replace 'blk' -> 'block' in AstBuilder.

I didn't rename variables because they are local and are not parts of
the public interfaces.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
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
replace `range` with an external iterator
auto merge of #8216 : thestinger/rust/range, r=huonw
Fix calling destructor on uninitialized dynamic library crash.

A test case was also created for this situation to prevent the problem
occuring again.

A similar problem was also fixed for the symbol method.

There was some minor code cleanup.
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.