Sort most attributes alphabetically
Minor changes to `rust.md`, and `guide-ffi.md`.

  * `rust.md`: whanges for consistency

  * `guide-ffi.md`: wrapped inline code
~ -> Box in the manual

Fixes #16439
libcore: rename private cmp macros

eq_impl! => partial_eq_impl!
totaleq_impl! => eq_impl!
ord_impl! => partial_ord_impl!
totalord_impl! => ord_impl!
std: Rename various slice traits for consistency

ImmutableVector -> ImmutableSlice
ImmutableEqVector -> ImmutableEqSlice
ImmutableOrdVector -> ImmutableOrdSlice
MutableVector -> MutableSlice
MutableVectorAllocating -> MutableSliceAllocating
MutableCloneableVector -> MutableCloneableSlice
MutableOrdVector -> MutableOrdSlice

These are all in the prelude so most code will not break.

[breaking-change]
std: Rename slice::Vector to Slice

This required some contortions because importing both raw::Slice
and slice::Slice makes rustc crash.

Since `Slice` is in the prelude, this renaming is unlikely to
casue breakage.

[breaking-change]
core: Rename ImmutableSlice::unsafe_ref to unsafe_get

Deprecate the previous.
core: Deprecate ImmutableSlice::tailn and initn

These are equivalent to slice_from and slice_to.
core: Rename MutableCloneableSlice::copy_from to clone_from_slice

Deprecate the previous.
collections: Deprecate Vec::tailn. Same as slice_from
core: Rename ImmutableEqSlice to ImmutablePartialEqSlice

This is in the prelude and won't break much code.

[breaking-change]
core: Add binary_search and binary_search_elem methods to slices.

These are like the existing bsearch methods but if the search fails,
it returns the next insertion point.

The new `binary_search` returns a `BinarySearchResult` that is either
`Found` or `NotFound`. For convenience, the `found` and `not_found`
methods convert to `Option`, ala `Result`.

Deprecate bsearch and bsearch_elem.
Sort `Marker types` and add missing language items
Fix handling of ignored arguments in FFI wrappers for rust functions

Fixes #16441.
core: Put stability attributes all over the slice module

Much of this is as discussed[1]. Many things are marked

[1]: https://github.com/rust-lang/meeting-minutes/blob/master/Meeting-API-review-2014-08-06.md
core: Change the argument order on splitn and rsplitn for strs.

This makes it consistent with the same functions for slices,
and allows the search closure to be specified last.

[breaking-change]
Address some review feedback
Fix test fallout
librustc: Parse, but do not fully turn on, the `ref` keyword for
by-reference upvars.

This partially implements RFC 38. A snapshot will be needed to turn this
on, because stage0 cannot yet parse the keyword.

Part of #12381.
auto merge of #15929 : pcwalton/rust/by-ref-closures, r=alexcrichton

by-reference upvars.

This partially implements RFC 38. A snapshot will be needed to turn this
on, because stage0 cannot yet parse the keyword.

Part of #12831.

r? @alexcrichton