For small enough, trivially copyable T, take the parameter by-value in
SmallVector::append and SmallVector::insert. Otherwise, when
growing, update the argument appropriately.
Depends on https://reviews.llvm.org/D93779.
Split out from https://reviews.llvm.org/D91837.
Might be worth making this V.capacity() - V.size() + 1 to make it more precise? While V.capacity() will always be enough, I think (to me at least) that might make the test a bit harder to read, since capacity() may be significantly more than needed.