Document std::ops.

Added an overview with a 'real' example, as well as toy implementations of all of
the traits.

Closes #9356.
Fix single-line-style paragraph fills with code immediately before or after
Expand tidy to prevent binaries from being checked

Closes #9621
rustdoc: Generate valid code for struct-variants

Closes #9587
testsuite: Un-xfail unit-like-struct-drop-run on Windows

Closes #7999
auto merge of #9635 : catamorphism/rust/issue-7999, r=catamorphism

Closes #7999
auto merge of #9628 : alexcrichton/rust/tidy-binaries, r=thestinger

Closes #9621
rm only use of type_is_immediate outside of trans
Add new lint: non_uppercase_pattern_statics, for #7526.

This tries to warn about code like:
    ```rust
    match (0,0) {
        (0, aha) => { ... },
        ...
    }
    ```
where `aha` is actually a static constant, not a binding.
Throwing in another interesting test case: There is no need to warn
about constants that are (non-trivial) paths rather than just
identifiers, regardless of what case their characters are.
Fix typo in comment.
Expanded test to clarify that the constants *are* matching when they should.
rustpkg: Make test_rustpkg_test_output more permissive

test output may contain color codes, so check for several small strings
instead of one big one.
auto merge of #9640 : catamorphism/rust/rustpkg-test-fix, r=alexcrichton

r? @alexcrichton test output may contain color codes, so check for several small strings
instead of one big one.
Workaround conflict between all-uppercase static and NaN definition.
Revise error message to use phrase "all caps" instead of "uppercase".

This is to clarify that the lint is checking for THIS_THING and not This.
Add test for issue #9446.
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.
add -Z soft-float option

This change adds -Z soft-float option for generating
software floating point library calls.
It also implies using soft float ABI, that is the same as llc.

It is useful for targets that have no FPU.
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.