Fix fold explanation in the guide

The explanation of fold talks about three elements that should be summed, but it uses different values in the provided code.
auto merge of #18139 : JelteF/rust-1/patch-1, r=steveklabnik

The explanation of fold talks about three elements that should be summed, but it uses different values in the provided code.
fix printing signed literal in print_literal
Remove a number of deprecated crates

All of these crates have been deprecated for some time and properly live in the
rust-lang organization as cargo-based crates.

To update your code, depend on the rust-lang/foo repository via cargo.

[breaking-change]
Remove a large amount of deprecated functionality

Spring cleaning is here! In the Fall! This commit removes quite a large amount
of deprecated functionality from the standard libraries. I tried to ensure that
only old deprecated functionality was removed.

This is removing lots and lots of deprecated features, so this is a breaking
change. Please consult the deprecation messages of the deleted code to see how
to migrate code forward if it still needs migration.

[breaking-change]
Ensure that the return type of a function is Sized

While no real rvalue of an unsized type can exist, a diverging function
can still "return" a value of such a type, which causes an ICE.

Fixes #18107.
auto merge of #18142 : arielb1/rust/return-type-sized, r=eddyb

Fixes #18107 

r? @eddyb
auto merge of #18160 : koshlo/rust/to-source-fix, r=alexcrichton

Fix for issue #18091 

The problem seems to be that `ast_util::int_ty_to_string` takes unsigned number, and no one adds `-` to result string. I've fixed it by putting `-` before result string using `format!`.

I've also added `test_signed_int_to_string()` to check if implementation is valid.
Optimize BufferedReader::read for large buffers.

This optimizes `read` for the case in which the number of bytes
requested is larger than the internal buffer. Note that the first
comparison occurs again right afterwards and should thus be free. The
second comparison occurs only in the cold branch.
auto merge of #18108 : mahkoh/rust/buffered_reader, r=alexcrichton

This optimizes `read` for the case in which the number of bytes
requested is larger than the internal buffer. Note that the first
comparison occurs again right afterwards and should thus be free. The
second comparison occurs only in the cold branch.
Handle negative numbers in `sqrt` properly.

Closes #9987.
auto merge of #18174 : huonw/rust/fix-sqrt, r=alexcrichton

Closes #9987.
Guide: Fix typo in path
auto merge of #18184 : cakebaker/rust/typo_in_path, r=steveklabnik
Guide: Fix test count
Test fixes and rebase conflicts
auto merge of #18070 : alexcrichton/rust/spring-cleaning, r=aturon

This is a large spring-cleaning commit now that the 0.12.0 release has passed removing an amount of deprecated functionality. This removes a number of deprecated crates (all still available as cargo packages in the rust-lang organization) as well as a slew of deprecated functions. All `#[crate_id]` support has also been removed.

I tried to avoid anything that was recently deprecated, but I may have missed something! The major pain points of this commit is the fact that rustc/syntax have `#[allow(deprecated)]`, but I've removed that annotation so moving forward they should be cleaned up as we go.
auto merge of #18186 : cakebaker/rust/fix_test_count, r=alexcrichton
Rename fail! to panic!

https://github.com/rust-lang/rfcs/pull/221

The current terminology of "task failure" often causes problems when
writing or speaking about code. You often want to talk about the
possibility of an operation that returns a Result "failing", but cannot
because of the ambiguity with task failure. Instead, you have to speak
of "the failing case" or "when the operation does not succeed" or other
circumlocutions.

Likewise, we use a "Failure" header in rustdoc to describe when
operations may fail the task, but it would often be helpful to separate
out a section describing the "Err-producing" case.

We have been steadily moving away from task failure and toward Result as
an error-handling mechanism, so we should optimize our terminology
accordingly: Result-producing functions should be easy to describe.

To update your code, rename any call to `fail!` to `panic!` instead.
Assuming you have not created your own macro named `panic!`, this
will work on UNIX based systems:

    grep -lZR 'fail!' . | xargs -0 -l sed -i -e 's/fail!/panic!/g'

You can of course also do this by hand.

[breaking-change]
remove a fail from liballoc

this isn't strictly neccesary, but it reads the same and doesn't use the f word