Merge remote-tracking branch 'upstream/io' into io

Conflicts:
	src/libstd/rt/test.rs
	src/rt/rustrt.def.in
converted TODOs into XXXs
auto merge of #7498 : luqmana/rust/cow, r=catamorphism

Either one works and wget is easier to setup on windows.
auto merge of #7510 : Dretch/rust/missing-trait-message, r=catamorphism
auto merge of #7474 : Seldaek/rust/clean-iter, r=thestinger

I think it's WIP - but I wanted to ask for feedback (/cc @thestinger)

I had to move the impl of FromIter for vec into extra::iter because I don't think std can depend on extra, but that's a bit messed up. Similarly some FromIter uses are gone now, not sure if this is fixable or if I made a complete mess here..
auto merge of #7518 : graydon/rust/stats-improvements, r=catamorphism
auto merge of #7523 : huonw/rust/uppercase-statics-lint, r=cmr

Adds a lint for `static some_lowercase_name: uint = 1;`. Warning by default since it causes confusion, e.g. `static a: uint = 1; ... let a = 2;` => `error: only refutable patterns allowed here`.
vec: Fix size_hint() of reverse iterators

Fixes #7558
auto merge of #7531 : sankha93/rust/master, r=bblum

This pull request fixes #7118.
Implement consuming iterators for ~[], remove vec::{consume, consume_reverse, map_consume}.
Remove vec::{filter, filtered, filter_map, filter_mapped}, replaced by iterators.
Remove vec::reversed, replaced by iterators.
Remove standalone comparison functions in vec, make the trait impls better.
Convert vec::{split, splitn, rsplit, rsplitn} to external iterators.
Convert vec::windowed to an external iterator, and add an n-at-a-time chunk iterator.
Convert vec::{as_imm_buf, as_mut_buf} to methods.
auto merge of #7566 : huonw/rust/vec-kill, r=cmr

The last remaining internal iterator in `vec` is `each_permutation`.
Fix make_mono_id to take into account self types. Closes #7536.
Make privacy checking on default methods for cross crate structs not fail. Closes #7481.

It is unclear to me that the way method call privacy checking is done
makes any sense, though. It is only performed if the type is a
struct...
Make the error messages that result from referencing
nonexistent traits consistent, and add a test.