BUG: Fix strides of trailing 1s when reshaping

When adding ones to the shape for non contiguous arrays reshapes
(i.e. either the first array is not contiguous or the the reshape
order does not match it). The strides of trailing ones were not
set. For example reshape of (6,) to (6,1,1). Previously this occured
rarely because of removed special handleing when only ones were
added or removed.
ENH: enable _attempt_nocopy_reshape for zero size corner case

Adds some extra code for the special case where the size of the
array is 0. This is currently unused, but it may be useful to not
have to worry about such corner cases in the future.