Implement IntoIter on SmallVec …
This contains a forced refactoring of the current `into_iter` method which was renamed to `drain` as it would otherwise conflict with `impl<A: Array> IntoIter for SmallVec<A> { ... }`