Stop truncation of numpy assertion output
Stop truncation of numpy assertion output

The numpy function `np.testing._private.utils.build_err_msg` is
responsible for printing out the error message on a test assertion
failure.  It has a hardcoded truncation of array output after three
lines, but this means that error diffs are not given in full.

To overcome this, we monkeypatch the private function to remove the
truncation.  We cannot patch its exported name
`np.testing.build_err_msg` because its calling functions all access it
by the private name (because they're defined in the same module).

The patched form we used is copied from numpy at version 1.17, but the
code is backwards-compatible back to its introduction in 2006 (version
0.9.9, when the code still has references to Numeric and scipy.core!).
Still, the location of the module changes, so we have to test to find
where it is, since qutip officially supports numpy from 1.12.

qutip/qutip,cgranade/qutip,qutip/qutip,cgranade/qutip