SmallVector: Move, don't copy, elements to make space for an insertion.
SmallVector: More movable improvements - don't copy elements to make space when inserting repeated elements.

Also split and improve tests a bit.