Relax lifetime bounds on Reader/Writer impls for trait boxes

Cargo needs this to be able to instantiate `TerminfoTerminal<Box<Writer+'a>>`
for 'a other than 'static.
Fix whitespace and missing parentheses.
Have std::io::TempDir::new and new_in return IoResult

This allows using `try!()`

[breaking-change]

Fixes #16875
Updated to new extern crate syntax.
Added warning for old deprecated syntax
std: branchless bucket distance for hashmap
std: RawTable exposes a safe interface for HashMap

Introduced a new growth algorithm.
std: Split hashmap.rs into modules
Fix some non-FFI-safe types in externs
Use a visitor to look for non-FFI-safe types

Fixes #16250.
Fix spelling errors and capitalization.
auto merge of #16981 : kmcallister/rust/ctypes-warning, r=alexcrichton
Center alignment for fmt

Use '^' to specify center alignment in format strings.

fmt!( "[{:^5s}]", "Hi" ) -> "[ Hi  ]"
fmt!( "[{:^5s}]", "H" )  -> "[  H  ]"
fmt!( "[{:^5d}]", 1i )   -> "[  1  ]"
fmt!( "[{:^5d}]", -1i )  -> "[ -1  ]"
fmt!( "[{:^6d}]", 1i )   -> "[  1   ]"
fmt!( "[{:^6d}]", -1i )  -> "[  -1  ]"

If the padding is odd then the padding on the right will be one
character longer than the padding on the left.

Tuples squashed
auto merge of #16885 : wickerwaka/rust/fmt-center, r=alexcrichton

Use '^' to specify center alignment in format strings.

```
fmt!( "[{:^5s}]", "Hi" ) -> "[ Hi  ]"
fmt!( "[{:^5s}]", "H" )  -> "[  H  ]"
fmt!( "[{:^5d}]", 1i )   -> "[  1  ]"
fmt!( "[{:^5d}]", -1i )  -> "[ -1  ]"
fmt!( "[{:^6d}]", 1i )   -> "[  1   ]"
fmt!( "[{:^6d}]", -1i )  -> "[  -1  ]"
```

If the padding is odd then the padding on the right will be one
character longer than the padding on the left.
auto merge of #16923 : wickerwaka/rust/crate-as-fixup, r=alexcrichton

Changed occurances of:
extern crate foo = "bar";
to:
extern crate "bar" as foo;

Added warning for old deprecated syntax
Allow trailing commas in bitflags! macro
Test attributes
Attach documentation to the bitflags! macro itself

This is in consistent with the style demonstrated in the std::macros module.
Use {} for bitflags! definition and invocations

This looks nicer because it reflects Rust's other syntactic structures.
auto merge of #16982 : jbcrail/rust/comment-and-string-corrections, r=alexcrichton

I corrected spelling and capitalization errors in comments and strings.
Auto-derive Clone for syntax::diagnostic::Level.