TST/PERF: Re-write assert_almost_equal() in cython #4398

Add a testing.pyx cython file, and port assert_almost_equal() from
python to cython.

On my machine this brings a modest gain to the suite of "not slow" tests
(160s -> 140s), but on assert_almost_equal() heavy tests, like
test_expressions.py, it shows a large improvement (14s -> 4s).
TST: Fix edge cases in assert_almost_equal() + tests #4398

Many of the edge cases were related to ordering of the items, but in
some cases there were also issues with type checking.  This fixes both
of those issues and massively expands the testing for this function.
CLN: Make the name of the test file more accurate
Merge pull request #5219 from danbirken/c_assert_almost_equal_simple

TST/PERF: Re-write assert_almost_equal() in cython #4398