Currently std::asinh and std::acosh use std::pow to compute x^2. This
results in a significant error when computing e.g. asinh(i) or
acosh(-1).
This patch expresses x^2 directly via x.real() and x.imag(), like it
is done in libstdc++/glibc, and adds tests that checks the accuracy.
Ideally, I would prefer some approximate comparison instead of == here, but is_about is not suitable for arguments that have zero or near-zero sum. That's why I used exact comparison (several other cases in this file do the same). This test passes on x86_64, so hopefully it will work the same way in any IEEE-compliant environment.