Update documentation for from_raw_parts

Fixes #19269.
Allow message specification for should_fail

The test harness will make sure that the panic message contains the
specified string. This is useful to help make `#[should_fail]` tests a
bit less brittle by decreasing the chance that the test isn't
"accidentally" passing due to a panic occurring earlier than expected.
The behavior is in some ways similar to JUnit's `expected` feature:
`@Test(expected=NullPointerException.class)`.

Without the message assertion, this test would pass even though it's not
actually reaching the intended part of the code:
```rust
 #[test]
 #[should_fail(message = "out of bounds")]
fn test_oob_array_access() {
    let idx: uint = from_str("13o").unwrap(); // oops, this will panic
    [1i32, 2, 3][idx];
}
```
Change from message to expected
Mention expected in testing docs
auto merge of #19560 : sfackler/rust/should-fail-reason, r=alexcrichton

The test harness will make sure that the panic message contains the
specified string. This is useful to help make `#[should_fail]` tests a
bit less brittle by decreasing the chance that the test isn't
"accidentally" passing due to a panic occurring earlier than expected.
The behavior is in some ways similar to JUnit's `expected` feature:
`@Test(expected=NullPointerException.class)`.

Without the message assertion, this test would pass even though it's not
actually reaching the intended part of the code:
```rust
#[test]
#[should_fail(message = "out of bounds")]
fn test_oob_array_access() {
    let idx: uint = from_str("13o").unwrap(); // oops, this will panic
    [1i32, 2, 3][idx];
}
```
auto merge of #19306 : steveklabnik/rust/gh19269, r=nikomatsakis,brson

Fixes #19269.

/cc @thestinger @mahkoh @mitsuhiko
Rewrite threading infrastructure, introducing `Thunk` to represent
boxed `FnOnce` closures.
Purge the hack that allows `FnOnce` to be used with a by-value self method.  Besides being yucky, it will cause problems if we try to make all traits implement themselves, which would make a lot of things in life easier. Also, it was inextricably linked to `Box`, which was not the intention.  We can work around its absence, so better to reimplement it later in a more thorough fashion.
Adjust feature gates to allow for parenthetical notation to be used
with the fn traits
Remove `proc` types/expressions from the parser, compiler, and
language. Recommend `move||` instead.
Patch rustdoc to include missing types, make the match exhaustive
to prevent such oversights in the future.
Rewrite WorkItem not to use `proc()`.
Mostly rote conversion of `proc()` to `move||` (and occasionally `Thunk::new`)
Delete tests that are either no longer relevant or which have
duplicate tests around object types.
Update guide/intro to take into account the removal of `proc`.

cc @steveklabnick
Update emacs and vi modes.
Add some tests for obsolete code, sugar used in appropriate ways.
Temporarily remove issue #14039; it is fixed and re-added by PR #19438