libcore: Fix `Sized` bounds on overloaded function traits.

- Remove the `for Sized?` bound on `core::ops::FnOnce`, as it takes
  `self` by value and can never be implemented by an unsized type.
- Add a missing `Sized?` bound to the blanket `core::ops::FnMut` impl,
  as both `Fn` and `FnMut` are `for Sized?`.
rustc: Prepend a length to all metadata

One of the causes of #19501 was that the metadata on OSX was getting corrupted.
For any one particular invocation of the compiler the metadata file inside of an
rlib archive would have extra bytes appended to the end of it. These extra bytes
end up confusing rbml and have it run off the end of the array (resulting in the
out of bounds detected).

This commit prepends the length of metadata to the start of the metadata to
ensure that we always slice the precise amount that we want, and it also
un-ignores the test from #19502.

Closes #19501
Delete the outdated source layout README
Add a doctest for the std::string::as_string method.

Change Example to Examples.

Add a doctest that better demonstrates the utility of as_string.

Update the doctest example to use String instead of &String.
auto merge of #19563 : alexcrichton/rust/issue-19501, r=pnkfelix

One of the causes of #19501 was that the metadata on OSX was getting corrupted.
For any one particular invocation of the compiler the metadata file inside of an
rlib archive would have extra bytes appended to the end of it. These extra bytes
end up confusing rbml and have it run off the end of the array (resulting in the
out of bounds detected).

This commit prepends the length of metadata to the start of the metadata to
ensure that we always slice the precise amount that we want, and it also
un-ignores the test from #19502.

Closes #19501
auto merge of #19573 : apasel422/rust/sized_fn_once, r=alexcrichton

- Remove the `for Sized?` bound on `core::ops::FnOnce`, as it takes `self` by value and can never be implemented by an unsized type.
- Add a missing `Sized?` bound to the blanket `core::ops::FnMut` impl, as both `Fn` and `FnMut` are `for Sized?`.
auto merge of #19648 : mquandalle/rust/patch-1, r=alexcrichton
auto merge of #19628 : jbranchaud/rust/add-string-as-string-doctest, r=steveklabnik
Note: This PR needs a snapshot that includes #19449
libcore: use unboxed closures in `Option` methods
librustc_trans: fix fallout
Fix compile fail tests
libcore: use unboxed closures in `Result` methods
libcore: use unboxed closures in the fields of `Map`
libcollections: fix fallout
librustrt: fix fallout
libstd: fix fallout
libsyntax: fix fallout
librustc: fix fallout
librustc_trans: fix fallout