Fix the compatibility of Optional<> with some GCC versions that it will fail
to compile when T is getting checked for is_trivially_move_constructible
as mentioned here: https://reviews.llvm.org/D93510#2538983
Fix the problem by using llvm::is_trivially_move_constructible.
I think this comment should be expanded to cover is_trivially_move_constructible as well.