auto merge of #11228 : sfackler/rust/syntaxenv, r=pcwalton

I'd really like to be able to do something like

```rust
struct MapChain<'next, K, V> {
    info: BlockInfo,
    map: HashMap<K, V>,
    next: Option<&'next mut MapChain<'next, K, V>
}
```

but I can't get the lifetimes to work out.
auto merge of #11262 : alexcrichton/rust/issue-11259, r=pcwalton

Closes #11259
auto merge of #11275 : matt-auld/rust/update_readme, r=pcwalton
auto merge of #11276 : brson/rust/0.9, r=pcwalton
Remove std::either
Change rmake and doc-test to support TESTNAME

Closes #11288
Closes #11222
Fix windows dist script

In copying the license for the third-party bins it is attempting
to delete a directory that doesn't exist.
auto merge of #11149 : alexcrichton/rust/remove-either, r=brson

Had to change some stuff in typeck to bootstrap (getting methods in fmt off of Either), but other than that not so painful.

Closes #9157
auto merge of #11264 : am0d/rust/crate_type_lint, r=alexcrichton

This ensures that the `crate_type` attribute always contains a value,
and does not contain an invalid value.

Fixes #11256.
libsyntax: De-`@mut` `ParseSess::included_mod_stack`
librustc: De-`@mut` the parse session
libsyntax: De-`@mut` `StringReader::pos`
libsyntax: De-`@mut` `StringReader::last_pos`
libsyntax: De-`@mut` `StringReader::col`
libsyntax: De-`@mut` `StringReader::curr`
libsyntax: De-`@mut` `StringReader::peek_tok`
libsyntax: De-`@mut` `StringReader::peek_span`
libsyntax: De-`@mut` `TtReader::interpolations`
libsyntax: De-`@mut` `TtReader::repeat_idx`
libsyntax: De-`@mut` `TtReader::repeat_len`