Refine privacy error messages to be more accurate

This stops labeling everything as "is private" when in fact the destination may
be public. Instead, the clause "is inaccessible" is used and the private part of
the flag is called out with a "is private" message.

Closes #9793
Document traits and Default about format! better

Closes #9865
Closes #9808
Remove the fmt! syntax extension

It lived a good life, but its time has come. The groundwork is set for the
official transition after the next snapshot (removal of XXX2 macros)
auto merge of #9856 : alexcrichton/rust/privacy-errors, r=huonw

This stops labeling everything as "is private" when in fact the destination may
be public. Instead, the clause "is inaccessible" is used and the private part of
the flag is called out with a "is private" message.

Closes #9793
rustdoc: Strip methods correctly based on privacy

Beforehand the id of a method was the id of the 'self' argument, but this is not
the id which privacy was using (the id of the ast::method) struct, so by moving
the ids over to the privacy-target ones the methods are now stripped correctly.
auto merge of #9919 : alexcrichton/rust/fmt-begone, r=huonw

It lived a good life, but its time has come. The groundwork is set for the
official transition after the next snapshot (removal of XXX2 macros)
rustpkg: Make rustpkg tests stop comparing dates

Instead of scrutinizing modification times in rustpkg tests,
change output files to be read-only and detect attempts to write
to them (hack suggested by Jack). This avoids time granularity problems.

As part of this change, I discovered that some dependencies weren't
getting written correctly (involving built executables and library
files), so this patch fixes that too.

This partly addresses #9441, but one test (test_rebuild_when_needed)
is still ignored on Linux.
rustc: Check that the output file is writeable before linking

This is because on Linux, the linker will silently overwrite
a read-only file.
rustpkg: invoke touch with a portable set of args
auto merge of #9437 : catamorphism/rust/rustpkg-dates, r=alexcrichton

r? @alexcrichton On most platforms, the time granularity is 1 sec or more, so comparing
dates in tests that check whether rebuilding did or didn't happen leads
to spurious failures. Instead, test the same thing by making an output
file read-only and trapping attempts to write to it.
auto merge of #9938 : alexcrichton/rust/fmtdox, r=huonw

Closes #9865
Closes #9808
Try to improve format! error messages

Instead of just saying "unterminated format string" and friends, instead print
information about what was expected and what was found.

Closes #9931
Fix struct field visibility and add enum field doc

Struct fields with inherited visibility were previously stripped.

Closes #9899
Check unnecessary visibility for struct variants
auto merge of #9932 : alexcrichton/rust/better-fmt-errors, r=cmr

Instead of just saying "unterminated format string" and friends, instead print
information about what was expected and what was found.

Closes #9931
remove rust and rusti from driver.rs
doc (en & ja): remove mentions of type float, rust and rusti tools
auto merge of #9939 : sinma/rust/doc, r=alexcrichton

Recently, the float type, and the rust and rusti tools have been removed from master.

float replaced by f64 in code examples, removed mentions of float, f suffix, rust and rusti in explanations.

(+ some stupid things like rust -> Rust)
auto merge of #9941 : alexcrichton/rust/rustdoc, r=huonw

Beforehand the id of a method was the id of the 'self' argument, but this is not
the id which privacy was using (the id of the ast::method) struct, so by moving
the ids over to the privacy-target ones the methods are now stripped correctly.
auto merge of #9946 : sfackler/rust/enum-doc, r=alexcrichton

Struct fields with inherited visibility were previously stripped.

Closes #9899