std: make std::io::IoError{,Kind} implement Eq
auto merge of #15653 : erickt/rust/master, r=alexcrichton
Document that Result.unwrap prints the Err's value

It is implied by the Show bound, but that implication can be missed.
auto merge of #15632 : masklinn/rust/patch-1, r=alexcrichton

I saw that it was bounded by `Show` but the implication is no guarantee (and had only 0.10 to test, where this behavior has been added to 0.11)
add UnicodeStrSlice width() function
add Graphemes iterator; tidy unicode exports

- Graphemes and GraphemeIndices structs implement iterators over
  grapheme clusters analogous to the Chars and CharOffsets for chars in
  a string. Iterator and DoubleEndedIterator are available for both.

- tidied up the exports for libunicode. crate root exports are now moved
  into more appropriate module locations:
  - UnicodeStrSlice, Words, Graphemes, GraphemeIndices are in str module
  - UnicodeChar exported from char instead of crate root
  - canonical_combining_class is exported from str rather than crate root