std: Implement FromIterator for ~str

FromIterator initially only implemented for Iterator<char>, which is the
type of the main iterator.
auto merge of #8100 : blake2-ppc/rust/str-collect, r=pcwalton

FromIterator initially only implemented for Iterator<char>, which is the
type of the main iterator.
Add support for `..base` on static struct initializers.
auto merge of #8091 : kevinmehall/rust/const-struct-base, r=alexcrichton

With an expression like

    static w : foo = foo { a:5, ..x };

Rust currently gives the error "constant contains unimplemented expression type". This branch implements support for constant structs with `..base`.