This patch enables generic <cmath> overloads for types unambiguously convertible to any arithmetic type. Addresses PR18218.
Only pow is implemented completely, with proper noexcept specifications and the conversion dance, taken from Howard's original patch. If it looks good I'll extend the implementation and test cases to all the other generic <cmath> overloads.
Why does pow have the noexcept clause on it anyway?