BUG: fix wrong output shape in ndimage.zoom()

ndimage.zoom() may calculate the output shape incorrectly
due to round-off error in some occasions. Rounding to
nearest will be a better method for calculating the the
output shape compared to truncation.
issue a warning when the old and new shape differ
TST: filter ndimage.zoom warning and clean up ndimage tests.
Merge branch 'pr/2706' into master.

https://github.com/scipy/scipy/pull/2706