BUG: Make integer array rounding method return a copy.

Originally motivated by issue #3540. Array rounding was occuring in
place when the array contained integers and decimals>=0 (counter to what
the documentation said). Also, sometimes the array returned was copied
from the input array, and sometimes it was created fresh. This led to
bug #3540, where rounding an array with a view would sometimes return
another array with the same view, and sometimes not.

A much more thorough test of the rounding method was also implemented.
This test will catch issue #3540, as well as the rounding-in-place bug.
Merge branch 'master' into issue_3540