Add .insert() and .insert_char() methods to ~str.
extra: Remove condition from semver
Remove a fixme

I don't think it's relevant, a warning is more appropriate. Easier to just
maintain the order.

Closes #4681
Add tidy support for snapshots

This let's us specify exactly which snapshot a given note to update after
snapshot is for.

Closes #2483
Remove a fixme

pcwalton says this is right, and it looks right to me too.

Closes #4731
tidy: spew less chaff
std: mark some modules as unstable

Obviously everything is unstable, but these particularly so, and they will
likely remain that way.

Closes #10239
Fix some warnings
doc: update reference to new vector size syntax
Don't wait for a full buffer when reading TCP

libnative erroneously would attempt to fill the entire buffer in a call to
`read` before returning, when rather it should return immediately because
there's not guaranteed to be any data that will ever be received again.

Close #11328
auto merge of #11333 : cmr/rust/triage2, r=alexcrichton
Don't attempt duplicate outputs

This ends up causing weird errors like those seen in #11346

Closes #11346
Register new snapshots
Fix formatting of some code blocks in pdf docs

Code blocks apparently need to be surrounded by whitespace to be output
correctly when generating pdfs
auto merge of #11334 : alexcrichton/rust/fix-native-tcp, r=pcwalton

libnative erroneously would attempt to fill the entire buffer in a call to
`read` before returning, when rather it should return immediately because
there's not guaranteed to be any data that will ever be received again.

Close #11328
auto merge of #11335 : rlane/rust/fix-vector-doc, r=alexcrichton
Add lint for unnecessary casts
Remove some unnecessary type casts

Conflicts:
	src/librustc/middle/lint.rs
auto merge of #10826 : SimonSapin/rust/str-insert, r=brson

I could not run the tests because of unrelated building issue, sorry about that.
Support arbitrary stdout/stderr/logger handles

This will allow capturing of common things like logging messages, stdout prints
(using stdio println), and failure messages (printed to stderr).  Any new prints
added to libstd should be funneled through these task handles to allow capture
as well.

Additionally, this commit redirects logging back through a `Logger` trait so the
log level can be usefully consumed by an arbitrary logger.

This commit also introduces methods to set the task-local stdout handles:

* std::io::stdio::set_stdout
* std::io::stdio::set_stderr
* std::io::logging::set_logger

These methods all return the previous logger just in case it needs to be used
for inspection.

I plan on using this infrastructure for extra::test soon, but we don't quite
have the primitives that I'd like to use for it, so it doesn't migrate
extra::test at this time.

Closes #6369