Fix infinite recursion in units with ndarray subclasses.

This was partially addressed for masked arrays in #2290. However,
this does not work for all ndarray sub-classes, like the quantities
package. The fix here is to make sure ravel is actually succeeding
in changing the shape of the object. If it doesn't just return
what we've got.
Merge pull request #2591 from dopplershift/fix-infinite-recursion

Fix infinite recursion in units with ndarray subclasses.