Some objects have storage specifics which force them to be trivially copyable. Enforcing this requirement at compile time should avoid wasting time debugging du to accidentally breaking it.
As suggested in D48589 llvm::isPodLike almost does something like this. This change extracts the relevant logic so we can skip compiling it if the compiler does not support that trait (yet).