For small enough, trivially copyable T, take the argument by value in
SmallVector::push_back and copy it when forwarding to
SmallVector::insert_one_impl. Otherwise, when growing, update the
argument appropriately.
Depends on https://reviews.llvm.org/D93777.
Split out from https://reviews.llvm.org/D91837.
The cause of the regression was dropping the check against TakesParamByValue on this line when I moved this function to SmallVectorTemplateCommon...