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.
std::str: remove from_utf8.

This function had type &[u8] -> ~str, i.e. it allocates a string
internally, even though the non-allocating version that take &[u8] ->
&str and ~[u8] -> ~str are all that is necessary in most circumstances.