Improve memory usage of libsyntax
Replaces some usage of `.to_string()` with `.into_string()`

Signed-off-by: Peter Atashian <retep998@gmail.com>
doc: that felt like it needed a stronger break than what comma provides

Remove trailing whitespace while at it
These two lines are actually three.
Properly implement Show for EnumSet
`rustc main.rs` generates main binary file
impl ExactSize for vec::MoveItems
Update error messages in compile-fail tests
Take core as a dependency on librlibc. This is needed so that it can
see the lang-items for Sized etc. @acrichto and @thestinger had no
objections.
Guts of the new trait matching algorithm, not yet in use
Port coherence to use the new trait matching code
trans -- stop tracking vtables precisely, instead recompute as needed.
typeck/kind -- stop using old trait framework.

- Unify the "well-formedness" checking that typeck was already doing with what
  was taking place in kind.
- Move requirements that things be sized into typeck.
- I left the checking on upvars in kind, though I think it should eventually be
  refactored into regionck (which would perhaps be renamed).

This reflects a general plan to convert typeck so that it registers
obligations or other pending things for conditions it cannot check
eventually. This makes it easier to identify all the conditions that
apply to an AST expression, but can also influence inference in somec
cases (e.g., `Send` implies `'static`, so I already had to promote a lot
of the checking that `kind.rs` was doing into typeck, this branch just
continues the process).
misc ppaux changes
add Send bound on impl because stricter trait checking requires it
silence various warnings in stdlib, no idea why they suddenly started
heap: rm out-of-date FIXMEs
heap: optimize EMPTY to avoid relocations

Sized deallocation makes it pointless to provide an address that never
overlaps with pointers returned by an allocator. Code can branch on the
capacity of the allocation instead of a comparison with this sentinel.

This improves the situation in #8859, and the remaining issues are only
from the logging API, which should be disabled by default in optimized
release builds anyway along with debug assertions. The remaining issues
are part of #17081.

Closes #8859
Fix two typos
remove the closure_exchange_malloc lang item
Update docs to include Sized trait, which is needed