The last (big) missing piece to get "math" working in OpenMP target
regions (that I know of) was complex math functions, e.g.,
std::sin(std::complex<double>). With this patch we overload the system
template functions for these operations with versions that have been
distilled from libcxx/include/complex. We use the same
`omp begin/end declare variant`
mechanism we use for other math functions before, except that we this
time overload templates (via D85735).
Doesn't matter hugely given inlining, but I'm surprised to see std::complex taken by const & instead of by value.