[libc++] Fix bug in allocate_shared_for_overwrite Instead of destroying the object with allocator::destroy, we must call its destructor directly. As a fly-by also mark LWG3008 as fixed since it is handled by our implementation. This was pointed out by Tim Song in https://reviews.llvm.org/D140913. Differential Revision: https://reviews.llvm.org/D143791 GitOrigin-RevId: 5801090258011cfe636cda1493ac9bc07fb2a889