`strdup_uniq` doesn't have to be `pub`.
rustc: disallow trailing parentheses for nullary enum variants

Fixes #12560
auto merge of #12957 : lkuper/rust/docsprint, r=alexcrichton
auto merge of #12742 : FlaPer87/rust/issue-11411-static-mut-slice, r=nikomatsakis

This PR enables the use of mutable slices in *mutable* static items. The work was started by @xales and I added a follow-up commit that moves the *immutable* restriction to the recently added `check_static`

Closes #11411
auto merge of #12935 : lbonn/rust/nullenum, r=alexcrichton

Fix for #12560
Add a Share kind

Fixes #11781
Make `Rc`, `Cell` and `RefCell` NoShare
Replace Freeze bounds with Share bounds
Add Unsafe<T> type
Make Cell and RefCell use Unsafe<T>
Let ArcData use Unsafe<T>
Gather loans for static items

We currently gather loans for static items that are defined within
functions. This change enables loan gathering on static items declared
globally.
Forbid borrow of static items with unsafe interior
Allow static items that don't fulfill `Freeze`
Make atomics interior Unsafe<T>
Mention share in guid-unsafe instead of freeze
Mention Share in the tutorial