• Don't leak on panic in extend

    This ensures that the length of the SmallVec is updated even if the
    iterator panics in `next`.
    
    This uses `SetLenOnDrop` rather than setting the length inside the loop,
    because otherwise this suffers from the same optimization issue as
    rust-lang/rust#36355.
    
    Fixes #136.
    mbrubeck committed Jan 4, 2019