Update fannkuchredux benchmark

From the discussion on reddit:
http://www.reddit.com/r/rust/comments/2fenlg/benchmark_improvement_fannkuchredux/

This adds two variants: the primary, that uses an unsafe block, and a secondary
that is completely safe.

The one with the unsafe block matches clang's performance and beats gcc's.
Remove unused diagnostic codes.

Fixes #16449.
Fix formatting in the guide.

Thanks @dherman.
Optimize Slice::reverse

This makes the completely safe implementation of fannkuchredux perform
the same as C++. Yay, Rust.
auto merge of #16999 : brson/rust/fannkuch, r=alexcrichton

From the discussion on reddit:
http://www.reddit.com/r/rust/comments/2fenlg/benchmark_improvement_fannkuchredux/

This adds two variants: the primary, that uses an unsafe block, and a secondary
that is completely safe.

The one with the unsafe block matches clang's performance and beats gcc's.
auto merge of #17016 : steveklabnik/rust/fix_diagnostic_codes, r=huonw

Fixes #16449.
auto merge of #17018 : steveklabnik/rust/fix_projects_in_guide, r=huonw

Thanks @dherman.
Add ICE regression test for issue #16218.

This code used to produce an ICE on the definition of trait Bar
with the following message:

Type parameter out of range when substituting in region 'a (root
type=fn(Self) -> 'astr) (space=FnSpace, index=0)

Closes #16218.