BUG: sparse: work around alignment issue in f2py in Numpy 1.9.1

This version of Numpy specifies complex dtype alignments that are not
guaranteed by system malloc on win32, so that np.zeros does not produce
sufficiently aligned arrays.

Work around this issue by using an aligned allocator for intent(inout)
arrays that are potentially complex valued.

Workaround for gh-4168, while waiting for Numpy be fixed