std::result: Remove function `map_opt`

This function has never had any users in the tree
#7752: use fcnptr for glob errfunc.
0.8 will be in September
Don't die in try_unsafe_borrow if tls isn't ready

If there's no TLS key just yet, then there's nothing to unsafely borrow, so
continue returning None. This prevents causing the runtime to abort itself when
logging before the runtime is fully initialized.

Closes #9487
Rename from_utf8 to from_bytes again
errfunc ptr is nullable, so use Option as part of interface to glob (#7752).
stop fighting with rust logo filetype.
Fix the rust logo icon
Refactor the logging system for fewer allocations

This lifts various restrictions on the runtime, for example the character limit
when logging a message. Right now the old debug!-style macros still involve
allocating (because they use fmt! syntax), but the new debug2! macros don't
involve allocating at all (unless the formatter for a type requires allocation.
Fix visibility of digest implementations
auto merge of #9502 : brson/rust/fix-logo-icon, r=brson
Some struct visibility fixes
Moved StrSlice doc comments from impl to trait.
Moved OwnedStr doc comments from impl to trait.
Added a few #[inline] hints.

The doc comment changes make the source a bit harder to read, as
documentation and implementation no longer live right next to each
other. But this way they at least appear in the docs.
auto merge of #9499 : brson/rust/relnotes, r=cmr
std::rt: Implement task yielding. Fix a starvation problem
auto merge of #9392 : Kimundi/rust/str_docs, r=cmr

Moved `StrSlice` doc comments from impl to trait.
Moved `OwnedStr` doc comments from impl to trait.
Normalized a few `StrSlice` method names from `FOO_reverse`, `FOO_rev` and `rFOO` to `FOO_rev`.
Added a few `#[inline]` hints.

The doc comment changes make the source a bit harder to read, as documentation and implementation no longer live right next to each other. But this way they at least appear in the docs.
auto merge of #9404 : blake2-ppc/rust/result-map-opt, r=cmr

std::result: Remove function `map_opt`.

This function has never had any users in the tree, so this is my
initiative to remove this function.
extra::ringbuf: Implement method `.swap(uint, uint)` just like vector

RingBuf::swap(&mut self, i, j) swaps the element at indices `i` and `j`
if both elements are in bounds, otherwise it fails.
Regression test for ICE.  Fix #5153.
auto merge of #9490 : alexcrichton/rust/issue-9487, r=cmr

If there's no TLS key just yet, then there's nothing to unsafely borrow, so
continue returning None. This prevents causing the runtime to abort itself when
logging before the runtime is fully initialized.

Closes #9487

r? @brson