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?`.
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 #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?`.
typeck: Make the supplied parameters to be a tuple

When a type error occurs, check_method_argument_types() tries to provide
arguments filled with ty::mk_err(). However, if a function takes the
parameters as a tuple, the arguments should be converted to a tuple
before being passed to check_argument_types().

Fixes #19521.
auto merge of #19648 : mquandalle/rust/patch-1, r=alexcrichton
auto merge of #19628 : jbranchaud/rust/add-string-as-string-doctest, r=steveklabnik
auto merge of #19638 : barosl/rust/typeck-tupled-arguments-ice, r=jakub

When a type error occurs, `check_method_argument_types()` tries to provide arguments filled with `ty::mk_err()`. However, if a function takes the parameters as a tuple, the arguments should be converted to a tuple before passing it to `check_argument_types()`.

Fixes #19521.
Start restructuring to support generalized where clauses etc.
Thread a id to `Obligation`
Move the list of region obligations into the fulfillment context.
Introduce predicates but don't use them.
Write code for registering region obligations (but don't use it yet).
Switch to using predicates to drive checking. Correct various tests --
in most cases, just the error message changed, but in some cases we
are reporting new errors that OUGHT to have been reported before but
we're overlooked (mostly involving the `'static` bound on `Send`).
Remove diagnostic errors that were yielding warnings.
Fix the opt-out-copy behavior so that values with dtor etc are considered affine