Fix lev_distance
Fix type visitor glue for unboxed closures

This is a quick fix that prevents an ICE by mimicing the visitor
glue for boxed closures and bare functions.  Ideally, the `TyVisitor`
interface will be improved in the future to allow representing
more information about unboxed closures such as Fn/FnMut/FnOnce
status, capture mode, and captured free variable types and offsets.

Closes issue #17737
Add regression test for issue #17737
Handle provided trait methods when giving inference error suggestions

This fixes an ICE.  Closes issue #17758
Add regression test for issue #17758
Make examples for AtomicInt refer to AtomicInt

The examples for fetch_or, fetch_and and fetch_xor for
std::sync::atomic::AtomicInt used AtomicUint instead of AtomicInt.
Fix infinite recursion in Writer impl for &mut Writer

Closes issue #17767
docs: Reference hoedown instead of sundown
auto merge of #17760 : bkoropoff/rust/issue-17737, r=eddyb

This is a quick fix.  In the long term, the `TyVisitor` interface should be expanded to better represent closure types.

Closes issue #17737
auto merge of #17738 : hoeppnertill/rust/master, r=alexcrichton

There is an issue with lev_distance, where
```
fn main() {
    println!("{}", "\x80".lev_distance("\x80"))
}
```
prints `2`.

This is due to using the byte length instead of the char length.
auto merge of #17761 : bkoropoff/rust/issue-17758, r=alexcrichton

This fixes an ICE and closes issue #17758
auto merge of #17766 : pminten/rust/atomic-int-in-examples, r=alexcrichton

The examples for fetch_or, fetch_and and fetch_xor for
std::sync::atomic::AtomicInt used AtomicUint instead of AtomicInt.
auto merge of #17772 : bkoropoff/rust/issue-17767, r=alexcrichton

Closes issue #17767
auto merge of #17774 : lambda/rust/docs-mention-hoedown, r=steveklabnik

Rust 0.11.0 switched from sundown to the actively maintained hoedown; update the rustdoc documention to mention this.