make RandomAccessIterator inherit from Iterator
vec: add mut_slice_{to,from}

Closes #8066
Remove dummy type parameters from iterator adaptors

With the recent fixes to method resolution, we can now remove the
dummy type parameters used as crutches in the iterator module.

For example, the zip adaptor type is just ZipIterator<T, U> now.
vec: replace some `as_mut_buf` with `to_mut_ptr`
iterator: add an Extendable trait
auto merge of #8074 : thestinger/rust/iterator, r=cmr

d7c9bb4 r=alexcrichton
7ae17e0 r=huonw