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
Only run dsymutil on OSX in debug builds

When there are no debug symbols generated, then the program just prints an
annoying warning otherwise.

Closes #10198
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.
Optimize creation of buffered readers/writers

I was benchmarking rust-http recently, and I saw that 50% of its time was spent
creating buffered readers/writers. Albeit rust-http wasn't using
std::rt::io::buffered, but the same idea applies here. It's much cheaper to
malloc a large region and not initialize it than to set it all to 0. Buffered
readers/writers never use uninitialized data, and their internal buffers are
encapsulated, so any usage of uninitialized slots are an implementation bug in
the readers/writers.