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.
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.
Add read_to_str and write_{str, line}

These methods are sorely needed on readers and writers, and I believe that the
encoding story should be solved with composition. This commit adds back the
missed functions when reading/writing strings onto generic Readers/Writers.
auto merge of #10861 : alexcrichton/rust/iostr, r=pcwalton

These methods are sorely needed on readers and writers, and I believe that the
encoding story should be solved with composition. This commit adds back the
missed functions when reading/writing strings onto generic Readers/Writers.
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