TST: Better handle np.array_equal() edge cases
ok...
 @JeffReback we want to check each element if array_equal doesn't work, right?
 I think that if array_equal returns False and they are the same shape/dtype, and both can hold nan (e.g. float/object), then coerce to float and check for nan, otherwise I think its correct, just return False
 Well, examples of things that fail:

```
np.array_equal(np.array([], dtype='M8[ns]'), np.array([], dtype='float64'))
```
 should 0-Len be equal regardless of dtype

if yes then this is trivial
 I think so. Also think assert_almost_equal should ignore dtype and callers
should check that. This handles the case shown above.
 agree
