Rewrite SyntaxEnv

I'd really like to be able to do something like

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.
Add .insert() and .insert_char() methods to ~str.
Fix usage of rustc --ls on invalid files

Closes #11259
Add linting for `crate_type` attribute values.

This ensures that the `crate_type` attribute always contains a value,
and does not contain an invalid value.
Update references to rustc.rc in README.
Update AUTHORS.txt for 0.9
Bump more version numbers to 0.9
Give more effusive credit to authors
Bump version to 0.9
libextra: Add benchmarks for ebml::reader::vuint_at()
libstd: Always inline all byteswap functions
fixup! libstd: Always inline all byteswap functions
Abort on double-failure. #910

Previously this was an rtabort!, indicating a runtime bug. Promote
this to a more intentional abort and print a (slightly) more
informative error message.

Can't test this sense our test suite can't handle an abort exit.
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.