tagging issue number(#10381)
disable tests on android since tcp/ip permission cannot be acquired without help of apk
temporarily disable tests on android and tagging issue number #10378
temporarily disable tests on android and tagging issue number #10379
temporarily disable tests on android and tagging issue number #10380
temporarily disable tests on android and tagging issue number #10393
Register new snapshots
Enable uv pipe tests on windows

Turns out the pipe names must have special names on windows. Once we have
special names, all the tests pass just fine.

Closes #10386
auto merge of #10408 : alexcrichton/rust/snapshots, r=huonw

Mostly just using the `system` abi where possible.
Clean lint on test build
vec: with_capacity: check for overflow

Fixes #10271
Implement `size_hint` for Range

Closes #8606
auto merge of #10416 : cmr/rust/range_size_hint, r=huonw
doc: Don't mention TLS in condition tutorial
auto merge of #10394 : yichoi/rust/make_check_pass_android, r=brson

To enable test on android bot #9120

some tests are disabled and can be fixed further.
auto merge of #10409 : alexcrichton/rust/issue-10386, r=brson

Turns out the pipe names must have special names on windows. Once we have
special names, all the tests pass just fine.

Closes #10386
auto merge of #10417 : cmr/rust/vec_overflow, r=huonw

Fixes #10271
Add a flag to force generating toplevel crate map

As we start to move runtime components into the crate map, it's becoming harder
and harder to start the runtime from a C function as rust is embedded in another
application. Right now if you compile a rust crate as a dynamic library which is
then linked to another application, when using std::rt::start there are no I/O
local services, even though rustuv was linked against and requested. The reason
for this is that there is no top level crate map available specifying where to
find libuv I/O.

This option is not meant to be used regularly, but rather whenever compiling a
final library crate and linking it into another application. This lifts the
requirement that to get a crate map you must have the final destination be an
executable.
Remove #[fixed_stack_segment] and #[rust_stack]

These two attributes are no longer useful now that Rust has decided to leave
segmented stacks behind. It is assumed that the rust task's stack is always
large enough to make an FFI call (due to the stack being very large).

There's always the case of stack overflow, however, to consider. This does not
change the behavior of stack overflow in Rust. This is still normally triggered
by the __morestack function and aborts the whole process.

C stack overflow will continue to corrupt the stack, however (as it did before
this commit as well). The future improvement of a guard page at the end of every
rust stack is still unimplemented and is intended to be the mechanism through
which we attempt to detect C stack overflow.

Closes #8822
Closes #10155
Decrease the default stack size back to 2MB

I increased this to 4MB when I implemented abort-on-stack-overflow for Rust
functions. Now that the fixed_stack_segment attribute is removed, no rust
function will ever reasonably request 2MB of stack (due to calling an FFI
function).

The default size of 2MB should be plenty for everyday use-cases, and tasks can
still request more stack via the spawning API.