std: Rename the `ToStr` trait to `ToString`, and `to_str` to `to_string`.

[breaking-change]
auto merge of #15493 : brson/rust/tostr, r=pcwalton

This updates https://github.com/rust-lang/rust/pull/15075.

Rename `ToStr::to_str` to `ToString::to_string`. The naive renaming ends up with two `to_string` functions defined on strings in the prelude (the other defined via `collections::str::StrAllocating`). To remedy this I removed `StrAllocating::to_string`, making all conversions from `&str` to `String` go through `Show`. This has a measurable impact on the speed of this conversion, but the sense I get from others is that it's best to go ahead and unify `to_string` and address performance for all `to_string` conversions in `core::fmt`. `String::from_str(...)` still works as a manual fast-path.

Note that the patch was done with a script, and ended up renaming a number of other `*_to_str` functions, particularly inside of rustc. All the ones I saw looked correct, and I didn't notice any additional API breakage.

Closes #15046.
added test for method arg hygiene
change if/else to match
test harness cleanup
remove unused fn, make SELF_KEYWORD_NAME public
preserve context in parsing of `self` varref
get rid of keyword idents, replace with names

should prevent future bugs
replace idents with names
self arg macro test case
introducing let-syntax

The let-syntax expander is different in that it doesn't apply
a mark to its token trees before expansion. This is used
for macro_rules, and it's because macro_rules is essentially
MTWT's let-syntax. You don't want to mark before expand sees
let-syntax, because there's no "after" syntax to mark again.

In some sense, the cleaner approach might be to introduce a new
AST node that macro_rules expands into; this would make it clearer
that the expansion of a macro is distinct from the addition of a
new macro binding. This should work, though, up until I discover
that macro_rules actually introduces new identifiers; then the
whole thing falls apart.
test case for expansion of method macro
implement hygiene for method args
remove outdated comment

I believe this comment is now irrelevant, as a result of
commit 6757053cffb585249105fbd76f
comments
make macros non-capturing
macro literals should be compared by name only
carry self ident forward through re-parsing

formerly, the self identifier was being discarded during parsing, which
stymies hygiene. The best fix here seems to be to attach a self identifier
to ExplicitSelf_, a change that rippled through the rest of the compiler,
but without any obvious damage.
fix hygiene for test case