SI-7725 - Vector concatenation is unreasonably slow

Rewrote ++ to use append or prepend when adding small collections to the end
or beginning of vectors.  This solves the extra-O(n) problem for addition of
single elements reported in SI_7725.