librustc: Remove `~"string"` and `&"string"` from the language
Add serialization support for StrBuf

- implement Encodable and Decodable for StrBuf
- implement to_json for StrBuf
rustdoc tutorial: grammar change in list comments
Fixed outdated note in the tutorial
auto merge of #13875 : hjr3/rust/serialize-strbuf, r=alexcrichton

- implement Encodable and Decodable for StrBuf
- implement to_json for StrBuf
auto merge of #13878 : brutal-chaos/rust/tutorial_grammar, r=alexcrichton
auto merge of #13881 : aochagavia/rust/pr, r=alexcrichton
remove leftover obsolete string literals
fix error message for obsolete &"foo" literal
auto merge of #13877 : thestinger/rust/de-tilde-str-vec, r=alexcrichton
Fix a/an typos
Add debug_assert and debug_assert_eq macros

I also switched some `assert!` calls over to `debug_assert!`.

Closes #12049.

RFC: 0015-assert
Remove useless assert! case
auto merge of #13886 : japaric/rust/fix-an-typos, r=alexcrichton

Found the first one in the rust reference docs. I was going to submit a PR with one fix, but figured I could look for more... This is the result.
auto merge of #13789 : sfackler/rust/debug-assert, r=pcwalton

I switched the `assert!` calls in `RefCell` over to `debug_assert!`.
There are probably other instances that should be converted as well, but
I couldn't think of any off the top of my head.

RFC: 0015-assert
syntax: store char literals/tokens as `char`s rather than u32s.

Clearly storing them as `char` is semantically nicer, but this also
fixes a bug whereby `quote_expr!(cx, 'a')` wasn't working, because the
code created by quotation was not matching the actual AST definitions.
syntax: implement ToSource for more things in the quasiquoter.

The last few primitive types were missing.
regex_macros: simplify using AstBuilder & the improved quoting.

char literals now work in a quotation.

There were several instances of duplicated functionality in regex_macros
compared to AstBuilder so refactor those out.
auto merge of #13879 : huonw/rust/more-re, r=alexcrichton

Commits for details.

This shouldn't change the generated code at all (except for switching to `LitBinary` from an explicit ExprVec of individual ExprLit bytes for `prefix_bytes`).
Add lint check for negating uint literals and variables.

See #11273 and #13318