Improved the tags impl regex
Sort trait bounds.

Closes #6334
collections, unicode: Add support for NFC and NFKC
Guide: testing
Library changes for RFC #43
Add two helper functions for dealing with OwnedPtr paths
Implement RFC #43

Remove the ability of the borrow checker to determine that repeated
dereferences of a Box<T> refer to the same memory object. This will
usually require one of two workarounds:

1) The interior of a Box<T> will sometimes need to be moved / borrowed
into a temporary before moving / borrowing individual derived paths.

2) A `ref x` pattern will have to be replaced with a `box ref x`
pattern.

Fixes #16094.

[breaking-change]
Add a new test for borrow checker Box<T> behavior
Add comment about speed in FAQ.

Fixes #11174.
Guide: pointers

Not the pointer guide, but the guide section on pointers.

Adding a section about patterns for after this, as well.
doc: fix typos in std::num::Int
Stop using the Show impl for ast::Name in our symbols

When generating a unique symbol for things like closures or glue_drop,
we call token::gensym() to create a crate-unique Name. Recently, Name
changed its Show impl so it no longer prints as a number. This caused
symbols like glue_drop:1542 to become glue_drop:"glue_drop"(1542), or in
mangled form, glue_drop.$x22glue_drop$x22$LP$1542$RP$.
Be more consistent with "Hello, world!"
Correct RFC reference in time::Tm::rfc3339 docs

Fixes #16158
libserialize: add `error()` to `Decoder`

A quick and dirty fix for #15036 until we get serious decoder reform.

Right now it is impossible for a Decodable to signal a decode error,
for example if it has only finitely many allowed values, is a string
which must be encoded a certain way, needs a valid checksum, etc. For
example in the libuuid implementation of Decodable an Option is
unwrapped, meaning that a decode of a malformed UUID will cause the
task to fail.

Since this adds a method to the `Decoder` trait, all users will need
to update their implementations to add it. The strategy used for the
current implementations for JSON and EBML is to add a new entry to
the error enum `ApplicationError(String)` which stores the string
provided to `.error()`.

[breaking-change]
libuuid: use `Decoder::error()` rather than failing on bad decode
Change strptime::match_strs to use borrowed rather than owned strings

Also modernise a few constructs in match_strs().
auto merge of #16130 : apoelstra/rust/decode-error, r=alexcrichton

A quick and dirty fix for #15036 until we get serious decoder reform.

Right now it is impossible for a `Decodable` to signal a decode error, for example if it has only finitely many allowed values, is a string which must be encoded a certain way, needs a valid checksum, etc. For example in the `libuuid` implementation of `Decodable` an `Option` is unwrapped, meaning that a decode of a malformed UUID will cause the task to fail.
rustdoc: Use --crate-name with --test

This ensures that the name of the crate is set from the command line for tests
so the auto-injection of `extern crate <name>` in doc tests works correctly.
auto merge of #16152 : tshepang/rust/patch-1, r=alexcrichton