rustpkg: Search for packages correctly when using the rust_path_hack

Previously, any package would match any other package ID when searching
using the rust_path_hack, so long as the directory had one or more crate
files in it. Now, rustpkg checks that the parent directory matches the
package ID.

Closes #9273
auto merge of #9493 : huonw/rust/move-tuples, r=thestinger

The old behaviour of `foo.n0()` is replaced by `foo.n0_ref().clone()`.
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
auto merge of #9498 : catamorphism/rust/rust-path-hack-fix, r=cmr,metajack

r? @metajack
Rename from_utf8 to from_bytes again
auto merge of #9345 : Dretch/rust/digest-result-bytes, r=cmr

I would find this function useful.
rustdoc: Add sundown to src/rt/

This also starts compiling it in the same manner as linenoise, it's just bundled
with librustrt directly, and we export just a few symbols out of it.
rustdoc: Use sundown for markdown highlighting

This takes rendering times of documentation down from 30s to 0.5s. Kinda sad
that none of the parallelism is needed, but oh well!

Closes #7380
cc #3546
rustdoc: Change all code-blocks with a script

    find src -name '*.rs' | xargs sed -i '' 's/~~~.*{\.rust}/```rust/g'
    find src -name '*.rs' | xargs sed -i '' 's/ ~~~$/ ```/g'
    find src -name '*.rs' | xargs sed -i '' 's/^~~~$/ ```/g'
rustdoc: Enable various useful markdown extensions
rustdoc: Improve comment stripping

There is less implicit removal of various comment styles, and it also removes
extraneous stars occasionally found in docblock comments. It turns out that the
bug for getops was just a differently formatted block.

Closes #9425
Closes #9417
rustdoc: Add the ability to list all passes

In doing so, also remove the collapse-privacy pass because it's a little
over-zealous and may not be right 100% of the time (not used right now as well)
rustdoc: Emit purity to function dox for traits

Closes #3804
rustdoc: Implement stripping based on privacy

This will probably need to get tweaked once the privacy rules have been fully
agreed on, but for now this has all of the infrastructure necessary for
filtering out private items.

Closes #9410
rustdoc: Linkify all reexports.

This way each component of a reexport path is click-able to the destination that
it's referencing.
rustdoc: Start rendering variants (redirect to enum)

This allows reasonable behavior when an enum is clicked in an import.
rustdoc: Highlight function names

Closes #9460
rustdoc: Strip hidden docs by default.
rustdoc: Reduce ambiguity with clean::Type

The "Unresolved" variant could be completely removed becuase it turns out that
the interim state only very briefly lives.