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.
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
auto merge of #10519 : nikomatsakis/rust/issue-8624-borrowck-overly-permissive, r=pnkfelix

See #8624 for details.

r? @pnkfelix
shootout-spectralnorm resurection with parallelization
auto merge of #10704 : TeXitoi/rust/spectralnorm-resurected, r=alexcrichton
Register new snapshots
auto merge of #10709 : alexcrichton/rust/snapshot, r=pcwalton
Fix initial debug statements printing twice

It may mislead you into thinking tasks are spawning twice, when in fact they are
not.
auto merge of #10715 : alexcrichton/rust/fix-log-twice, r=huonw

It may mislead you into thinking tasks are spawning twice, when in fact they are
not.
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.
auto merge of #10726 : pnkfelix/rust/fsk-remove-at-fn-artifact, r=thestinger

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`.
auto merge of #10697 : pcwalton/rust/path-new, r=pcwalton

r+

(carrying over from @alexcrichton's review)
Remove @ from json::Error
Remove some unnecessary impls from json
extra: Rename json constructors into *::init
extra: json::Encoder should take a &mut io::Writer
Removed useless cmp::{min, max} reexports from the integer modules