iterator: add a size_hint default method

also adds an implementation for the vector iterators
iterator: add a FromIterator trait

This is able to take advantage of the lower bound from the size hint.
vec: remove BaseIter implementation

I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
auto merge of #7274 : thestinger/rust/size_hint, r=huonw

I ran into a weird lifetime bug blocking updating the `collect` method to use `FromIterator`, but everything here works fine.