This method was originally modeled after std::make_unique_for_overwrite, which
default initializes everything, making it a lot less useful.
Using is_trivially_copyable as the condition gives uninitialized memory for
classes that have a default constructor but still allows using
resize_for_overwrite for classes with a non-trivial assignment operator or
destructor. In other words, it makes
SmallVector<std::unique_ptr>::resize_for_overwrite safe and
SmallVector<clang::SourceLocation>::resize_for_overwrite efficient.
Should this be is_trivially_constructible<T>?