Guide: install instructions
fix feedback from @huonw
thanks @sfackler
Guide: Hello, world!

Let's write our first Rust program!
Add extra ignore directives.
tidy macro just a bit
revive old commented-out test cases as ignored test cases for hygiene
comments only
enrich and rename crate_idents test case
add unit test for match var hygiene
remove unneeded visit_ty methods
remove unneccessary pubs, shorten names
remove misleading and unnecessary underscores
don't expand subexprs of for loop, just re-expand whole thing.

Fixes #15167
added compile-fail test for 15167
make macros hygienic
work around 15189 in test cases
json: Fix handling of NaN/Infinity

The JSON spec requires that these special values be serialized as null; the current serialization breaks any conformant JSON parser. So encoding needs to output "null",  to_json on floating-point types can return Null as well as Number, and reading null when specifically expecting a number should be interpreted as NaN. There's no way to round-trip Infinity.
more loops to be ignored by pretty-rpass
auto merge of #15184 : jbclements/rust/for-loop-hygiene-etc, r=jbclements

It turns out that bindings introduced by 'for' loops were not treated hygienically. The fix for this is to make the 'for' expansion more like a macro; rather than expanding sub-pieces and then assembling them, we need to rewrite the for and then call expand again on the whole thing.

This PR includes a test and the fix.

It also contains a number of other things:
- unit tests for other forms of hygiene (currently ignored)
- a fix for the isaac.rs macro that (it turned out) was relying on capturing
- other miscellaneous cleanup and comments