libstd: improve os::args() doc
Guide: add a pointer to play.rust-lang.org and explain how to run the code examples.
Reference: Add missing third dot of range
librustrt: check for mips+linux config in stack_overflow
New guide: error handling
Feature gate non-ASCII lifetime identifiers

Fixes #19069.
deriving: error out when used on a non-type

Besides being more helpful, this gives us the flexibility to later define
a meaning for something like

    #[deriving(...)]
    mod bar { ... }
Error handling guide
Switch to an independent enum for `Lit*` subtokens.
Update src/grammar for language changes.
Update makefiles to ensure src/grammar/verify.rs is built.

It's not run, but this ensures that the code at least doesn't go out of
date.
libs: stabilize most numerics after RFC changes

This commit adds stability markers for the APIs that have recently been
aligned with [numerics
reform](https://github.com/rust-lang/rfcs/pull/369). For APIs that were
changed as part of that reform, `#[unstable]` is used to reflect the
recency, but the APIs will become `#[stable]` in a follow-up pass.

In addition, a few aspects of the APIs not explicitly covered by the RFC
are marked here -- in particular, constants for floats.

This commit does not mark the `uint` or `int` modules as `#[stable]`,
given the ongoing debate out the names and roles of these types.

Due to some deprecation (see the RFC for details), this is a:

[breaking-change]
Fallout from deprecation
std: Stabilize std::fmt

This commit applies the stabilization of std::fmt as outlined in [RFC 380][rfc].
There are a number of breaking changes as a part of this commit which will need
to be handled to migrated old code:

* A number of formatting traits have been removed: String, Bool, Char, Unsigned,
  Signed, and Float. It is recommended to instead use Show wherever possible or
  to use adaptor structs to implement other methods of formatting.

* The format specifier for Boolean has changed from `t` to `b`.

* The enum `FormatError` has been renamed to `Error` as well as becoming a unit
  struct instead of an enum. The `WriteError` variant no longer exists.

* The `format_args_method!` macro has been removed with no replacement. Alter
  code to use the `format_args!` macro instead.

* The public fields of a `Formatter` have become read-only with no replacement.
  Use a new formatting string to alter the formatting flags in combination with
  the `write!` macro. The fields can be accessed through accessor methods on the
  `Formatter` structure.

Other than these breaking changes, the contents of std::fmt should now also all
contain stability markers. Most of them are still #[unstable] or #[experimental]

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0380-stabilize-std-fmt.md
[breaking-change]

Closes #18904
iOS: fixed broken build after disallowed coercions
clearly define `int` and `uint` to fix unsoundness

This fixes the gap in the language definition causing #18726 by defining
a clear bound on the maximum size for libraries to enforce.

Closes #18069
Move closure checking into its own file. Shrink check/mod.rs!
Deduce the argument types based on the expected type, trawling through the fulfillment contect if necessary.
Refactor QPath to take an ast::TraitRef
Ensure that the type parameters passed to methods outlive the call expression. Fixes #18899.