BUG: Fix broadcasting in np.cross (solves #2624)

Changed np.cross to move the axis it's operating on to the end, not the
beginning of the shape tuple, and used rollaxis, not swapaxes, so that
normal broadcasting rules apply.
There were no tests in place, so I added some validation of results and
broadcasted shapes, including the one reported in #2624
TST: Added out of bounds axis checking to the tests.
ENH: Minimize temporary intermediate arrays using a preallocated
     output array and in-place operations.
DOC: Added 'Supports full broadcasting' note to the docstring.
DOC: Added note to 1.9.0 release notes
Fix stride_stricks.as_strided function for object arrays

Currently, calling as_strided for object array results in 'TypeError: Cannot change data-type for object array.'. Fix so that dtype of new array is only set for void dtype, as originally intended.
Merge pull request #4338 from jaimefrio/cross-broadcast

BUG: Fix broadcasting in np.cross (solves #2624)
Merge pull request #4377 from ContinuumIO/as_strided_fix

Fix stride_stricks.as_strided function for object arrays