it -> Cargo

It wasn't clear if we needed to install Hello World or Cargo.
librustc: Don't ICE on binding same field multiple times in struct
pattern.
fix typo in readme
auto merge of #15262 : zecozephyr/rust/15620, r=luqmana

Fixes #15260
auto merge of #15259 : steveklabnik/rust/patch-3, r=alexcrichton

It wasn't clear if we needed to install Hello World or Cargo.
auto merge of #15267 : ruud-v-a/rust/patch-1, r=huonw

[This commit](https://github.com/rust-lang/rust/commit/25fe2cadb10db1a54cefbd1520708d4397874bc3#diff-04c6e90faac2675aa89e2176d2eec7d8R57) forgot to remove one line.
Fix distcheck

libcoretest wasn't being included which broke the verification of the
tarball.
auto merge of #15275 : sfackler/rust/distcheck, r=alexcrichton

libcoretest wasn't being included which broke the verification of the
tarball.
Add `utf16_units`

This deprecates `.to_utf16`. `x.to_utf16()` should be replaced by either
`x.utf16_units().collect::<Vec<u16>>()` (the type annotation may be optional), or
just `x.utf16_units()` directly, if it can be used in an iterator context.

Closes #14358

[breaking-change]
auto merge of #14613 : schmee/rust/utf16-iterator, r=huonw

Closes #14358.

~~The tests are not yet moved to `utf16_iter`, so this probably won't compile. I'm submitting this PR anyway so it can be reviewed and since it was mentioned in #14611.~~ EDIT: Tests now use `utf16_iter`.

This deprecates `.to_utf16`. `x.to_utf16()` should be replaced by either `x.utf16_iter().collect::<Vec<u16>>()` (the type annotation may be optional), or just `x.utf16_iter()` directly, if it can be used in an iterator context.

[breaking-change]

cc @huonw
JSON cleanup

* Tried to make the code more idiomatic
* Renamed the `wr` field of the `Encoder` and `PrettyEncoder` structs to `writer`
* Replaced some `from_utf8` by `from_utf8_owned` to avoid unnecessary allocations
* Removed unnecessary `unsafe` code
Removed unnecessary Box
Add `encode` and `decode` shortcut functions

Now you can just use `json::encode` and `json::decode`, which is very
practical

**Deprecated `Encoder::str_encode` in favor of `json::encode`**

[breaking-change]
Implement FromStr for Json
Fix JSON documentation

Fixed some errors, removed some code examples and added usage of the
`encode` and `decode` functions.
Fix issues in libtest
Fix issue with tests
Fix issues in librustdoc
Implement ToJson for all tuples
auto merge of #15238 : aochagavia/rust/json, r=alexcrichton

### Breaking changes:

* **Removed unnecessary `box` from enum variant (`Object(Box<Object>)` becomes `Object(Object)`)**
* **Deprecated `Encoder::str_encode`**

### Other changes:

* Tried to make the code more idiomatic
* Renamed the `wr` field of the `Encoder` and `PrettyEncoder` structs to `writer`
* Replaced some `from_utf8` by `from_utf8_owned` to avoid unnecessary allocations
* Removed unnecessary `unsafe` code
* Added `encode` and `decode` shortcut functions
* Implemented `FromStr` for `Json`
* Implemented `ToJson` for tuples of arity up to 12
* Fixed some details in the documentation

### Questions

* ~~The `encode` shortcut function does the same as the `Encoder::str_encode` function. It seems wrong to me that two functions do exactly the same. Should we deprecate `Encoder::str_encode`?~~
* ~~Do we really want the ToJson trait for tuples? At the moment we have it for (), (A, B), (A, B, C). I would like to remove them.~~
* ~~We are using `String` as key in the `TreeMap` representing a `Json` object. It would be better to use `&str`, but this would require to annotate lots of lifetimes. Is there any easy solution for this?~~
* There is a lot of duplicated code (`PrettyEncoder` copies about 50 lines from `Encoder`). In an OO language this could be solved very elegantly by using inheritance and overriding. What can we do here to reduce the amount of boilerplate?

[breaking-change]