BUG: Do not reuse nditer buffers when not filled enough.

This checks if the previous time around, the buffers were filled
with as much data as they would be filled this time around. Since
This is difficult for the initial loop before reusing is activated
because in that case the buffer may be larger then just the
first outer reduce dimension. In that case do not allow reuse
unless the index along that dimension was 0.
When the inner reduce index is not 0, then also the reusing of
the buffer is dangerous.
TST: Add (slow) nditer reduce buffer reuse test
BUG: no buffer reuse in nditer, if there was no buffer previously

If the buffer is used or not can possible change during iteration.
In this case, the buffer cannot be reused if it never existed...
TST: test no reuse of non-existing buffers in nditer

This slightly changes the test to cover more cases including
the one where buffers are sometimes used and sometimes not.
Merge pull request #3186 from seberg/backport-issue-3142

Backport nditer buffer reuse fixes
replace exec by eval to ensure the c variable is defined for all relevant python versions
Merge pull request #3230 from jdkloe/1.7.x

Fix for issue 3192 - backport of f31f0fbe45
BUG: Concatenate with axis None should work regardless of matching array shapes
TST: Add test for concatenate with None-axis

Conflicts:
	numpy/core/tests/test_shape_base.py
Merge pull request #3275 from dieterv77/fix-concat-1.7.x

Backport fix for np.concatenate with axis=None