DOC: improves the str type explanation

Closes #18449
First stage of enum namespacing changes
Add lint for checking exceeding bitshifts #17713
bubble up out-of-memory errors from liballoc

This makes the low-level allocation API suitable for use cases where
out-of-memory conditions need to be handled.

Closes #18292

[breaking-change]
auto merge of #18481 : sfackler/rust/enum-namespace, r=pcwalton

After a snapshot, everything can be switched over and the small bit of hackery in resolve dealing with `ENUM_STAGING_HACK` can be removed.

cc #18478
auto merge of #18406 : thestinger/rust/oom, r=cmr

This makes the low-level allocation API suitable for use cases where
out-of-memory conditions need to be handled.

Closes #18292

[breaking-change]
Add error module with Error and FromError traits

As per [RFC 70](https://github.com/rust-lang/rfcs/blob/master/active/0070-error-chaining.md)

Closes #17747

Note that the `error` module must live in `std` in order to refer to `String`.

Note that, until multidispatch lands, the `FromError` trait cannot be
usefully implemented outside of the blanket impl given here.
auto merge of #18456 : gamazeps/rust/issue18449, r=thestinger

Made the fact that rodata is a section of the executable more explicit
Closes #18449
Add Error impls to a few key error types
Add type annotation to deal with fallout
Work around jemalloc/jemalloc#161
auto merge of #18554 : sfackler/rust/jemalloc-fix, r=thestinger
auto merge of #17753 : aturon/rust/error-interop, r=alexcrichton

This PR:

* Adds the error interoperation traits (`Error` and `FromError`) to a new module, `std::error`, as per [RFC 70](https://github.com/rust-lang/rfcs/blob/master/active/0070-error-chaining.md). Note that this module must live in `std` in order to refer to `String`.

    Note that, until multidispatch lands, the `FromError` trait cannot be
usefully implemented outside of the blanket impl given here.

* Incorporates `std::error::FromError` into the `try!` macro.

* Implements `Error` for most existing error enumerations.

Closes #17747
auto merge of #18206 : hirschenberger/rust/issue-17713, r=thestinger

Add lint for checking exceeding bitshifts #17713

It also const-evaluates the shift width (RHS) to check more complex shifts like `1u8 << (4+5)`.
The lint-level is set to `Warn` but perhaps it must be `Deny` as in llvm exceeding bitshifts are undefined as @ben0x539 stated in #17713