ENH: stats: add a random_state property to distributions

Distributions can either rely on the global numpy.random state
(in a backwards compatible way), or set the instance-level random_state,
or use a specific RandomState object for each rvs(...) call.
Merge pull request #4129 from ev-br/stats_random_state

ENH: stats: add a random_state property to distributions
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.