Add lru_cache to libextra
Disable priv in std::comm::Port, etc

It's useful to allow users to get at the internal std::rc::comm::Port,
and other such fields, since they implement important traits like
Select.
Add [mut_]shift_ref/[mut_]pop_ref functions, which return a pointer to the first/last item in the slice and modify the slice to exclude the returned item. Useful when writing iterators over mutable references.
Add benchmark tests to path/posix

I have written some benchmark tests to `push`, `push_many`, `join`,
`join_many` and `ends_with_path`.
rustdoc: Use new ||/proc syntax
Relax restrictions on unknown feature directives

Instead of forcibly always aborting compilation, allow usage of
 #[warn(unknown_features)] and related lint attributes to selectively abort
 compilation. By default, this lint is deny.
Use the native tls implementation on android

Turns out android doesn't support LLVM's thread_local attribute and accompanying
implementation.

Closes #10686
Update unicode.py to reflect language changes
Update Unicode data to version 6.3
Fix handling of upper/lowercase, and whitespace
Be more strict about doc comments

Previously, `//// foo` and `/*** foo ***/` were accepted as doc comments. This
changes that, so that only `/// foo` and `/** foo ***/` are accepted. This
confuses many newcomers and it seems weird.

Also update the manual for these changes, and modernify the EBNF for comments.

Closes #10638
Modify iterators to make them safe with the new rules.
Test that reborrowing contents of an `&'a mut &'b mut` pointer can only
be done for at most lifetime `'a`

Fixes #8624
shootout-spectralnorm resurection with parallelization
Register new snapshots
Fix initial debug statements printing twice

It may mislead you into thinking tasks are spawning twice, when in fact they are
not.
don't create intermediate string while creating json (rustdoc)
Removed a few macro-expanding-to-module workarounds

Also documented a few issues
Removed some dead code.

While tracking down how this function became dead, identified a spot
(@fn cannot happen) where we probably would prefer to ICE rather than
pass silently; so added fail! invocation.
libstd: Change `Path::new` to `Path::init`.