Create epub versions of tutorial and ref manual.

Pandoc can create epub verions of the markdown files. Since the docs
are lengthy, epubs are handy to have around. Two rules to create epub
versions of the reference manual and the main tutorial are added here.

Signed-off-by: Noufal Ibrahim <noufal@nibrahim.net.in>
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
extra::getopts: update docs for minor renaming.
auto merge of #10399 : huonw/rust/get-opt-doc, r=alexcrichton
auto merge of #10226 : nibrahim/rust/docepub, r=alexcrichton

Added two new rules to create epubs out of the tutorial and reference manual source files. This is useful and doesn't add any new dependencies to the build process.
auto merge of #10406 : alexcrichton/rust/issue-10405, r=huonw

The logging macros all use libuv-based I/O, and there was one stray debug
statement in task::spawn which was executing before the I/O context was ready.
Remove it and add a test to make sure that we can continue to debug this sort of
code.

Closes #10405
auto merge of #10408 : alexcrichton/rust/snapshots, r=huonw

Mostly just using the `system` abi where possible.
Clean lint on test build
Implement `size_hint` for Range

Closes #8606
auto merge of #10416 : cmr/rust/range_size_hint, r=huonw
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
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.