BUG: fix percentage reporting when testing.assert_allclose fails.

Aims to address : https://github.com/numpy/numpy/issues/2912

I separated the inner calculation of 'allclose' into a separate routine for assert_allclose to use it.
This now conforms to the expected behaviour of 'comparison' in assert_array_compare.
Governing concepts:
 * subsidiary routine is private, to avoid extending the api with more routines to support
 * assuming ultimate efficiency is not a big deal for this, so extra function call is ok
 * in an ideal world, this function would be simply 'isclose', but I think that equivalence can't now be assured, and we must leave legacy routines as they are.