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.

(cherry picked from commit ab4e7511e1442f150f9ce4dcbed7de82118433ba)