rustdoc: Generate valid code for struct-variants

Closes #9587
Clarify format! implicit positional references

It was a little ambiguous before how explicitl positional parameters and
implicit positional parameters intermingled, and this clarifies how the two
intermingle. This also updates a little bit of documentation/code examples
elsewhere as well.
rustdoc: Add the ability to input json

This modifies the command-line usage of rustdoc to intake its own JSON output as
well as a rust source file. This also alters the command line from
`rustdoc input file`  to `rustdoc file` with the input/output formats specified
as -r and -w, respectively.

When using a JSON input, no passes or plugins are re-run over the json, instead
the output is generated directly from the JSON that was provided. Passes and
plugins are still run on rust source input, however.
rustdoc: Update the man page

Closes #9622
rustdoc: Detect repeated keys and fix width

When a key is pressed and held, this now does the OS-style repeating after a bit
of a pause. Also fixes the width of search results to be correct (was changed
beforehand and didn't catch this).
rustdoc: Use a BufferedWriter when emitting source

This takes the rendering time of source files for libstd from 12.5s to 0.1s,
turns out write! calls the write function *a lot*
rustdoc: Stop ignoring dox on fields/variants

This is progress towards #9611
rustdoc: Don't ignore dox on impl blocks

Closes #9611
clarify that rust_pkg is a place-holder

the switch from package `hello` to `rust_pkg` is a little jarring; I'd use <var> but I don't see how. ALL_CAPS seems like a reasonable  poor-man's <var>.
auto merge of #9636 : alexcrichton/rust/rustdoc, r=huonw

Commits have all the juicy details.

Import thing to note in this pull request is that `rustdoc html crate.rs` becomes `rustdoc crate.rs`
auto merge of #9644 : alexcrichton/rust/clarify, r=huonw

It was a little ambiguous before how explicitl positional parameters and
implicit positional parameters intermingled, and this clarifies how the two
intermingle. This also updates a little bit of documentation/code examples
elsewhere as well.
auto merge of #9645 : dckc/rust/patch-2, r=catamorphism

the switch from package `hello` to `pkg_id` is a little jarring; I'd use `<var>` but I don't see how. ALL_CAPS i.e. PKG_ID seems like a reasonable  poor-man's `<var>`.
Change the format! statics to be all-caps

This lets them get past the non_uppercase_statics lint mode (if it's turned on)

Closes #9631
Fix usage of the old debug! macros
auto merge of #9659 : alexcrichton/rust/fix-fmt, r=huonw

I was a little too trigger-happy in migrating from `format!` to `fmt!`...
auto merge of #9633 : alexcrichton/rust/issue-9631, r=huonw

Closes #9631
remove the `float` type

It is simply defined as `f64` across every platform right now.

A use case hasn't been presented for a `float` type defined as the
highest precision floating point type implemented in hardware on the
platform. Performance-wise, using the smallest precision correct for the
use case greatly saves on cache space and allows for fitting more
numbers into SSE/AVX registers.

If there was a use case, this could be implemented as simply a type
alias or a struct thanks to `#[cfg(...)]`.

Closes #6592

The mailing list thread, for reference:

https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
auto merge of #9519 : thestinger/rust/float, r=catamorphism

It is simply defined as `f64` across every platform right now.

A use case hasn't been presented for a `float` type defined as the
highest precision floating point type implemented in hardware on the
platform. Performance-wise, using the smallest precision correct for the
use case greatly saves on cache space and allows for fitting more
numbers into SSE/AVX registers.

If there was a use case, this could be implemented as simply a type
alias or a struct thanks to `#[cfg(...)]`.

Closes #6592

The mailing list thread, for reference:

https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
librustc: Inline cross-crate tuple struct constructors
auto merge of #9560 : pcwalton/rust/xc-tuple-structs, r=pcwalton

r? @thestinger