Improve the local_data docs slightly

Remove references to local_data::Key and only mention the macro for how to
construct new keys into local data.
Translate nested items in default methods

Closes #9123
std::rt::io: Fix file I/O on Win32

It was broken on win32 because of header inconsistency.
make ! support the equality/ordering operators

An expression such as `bottom == not_bottom` or `not_bottom == bottom`
already compiled, but this fixes the case where both sides are `bottom`.
Minor cleanup and formatting tweaks to the rust-mode README
auto merge of #9160 : alexcrichton/rust/local-data-docs, r=huonw

Remove references to local_data::Key and only mention the macro for how to
construct new keys into local data.
auto merge of #9162 : alexcrichton/rust/issue-9123, r=catamorphism

Closes #9123
auto merge of #9165 : klutzy/rust/newrt-file-fix, r=sanxiyn

It was broken on win32 because of header inconsistency.
auto merge of #9174 : thestinger/rust/bot, r=catamorphism

An expression such as `bottom == not_bottom` or `not_bottom == bottom`
already compiled, but this fixes the case where both sides are `bottom`.
auto merge of #9178 : lkuper/rust/docs, r=catamorphism
Add an SendStr type

A SendStr is a string that can hold either a ~str or a &'static str.
This can be useful as an optimization when an allocation is sometimes needed but the common case is statically known.

Possible use cases include Maps with both static and owned keys, or propagating error messages across task boundaries.

SendStr implements most basic traits in a way that hides the fact that it is an enum; in particular things like order and equality are only determined by the content of the wrapped strings.