Merge pull request #4518 from juliantaylor/datetime-overflow

BUG: catch overflow of nominator in datetime conversions
ENH, MAINT: Check that covariance is positive-semidefinite.

numpy.random.multivariate_normal uses SVD to obtain the covariance
square root, but the result will be incorrect if the covariance is not
positive-semidefinite and no warning will be given. However, a check can
be made even while using the SVD by checking if the rows of u.T and v
have the same sign, where u and v are given by u, d, v = svd(a).

A deprecation warning is also fixed. When the default size was used an
empty list was passed to multiply.reduce, which resulted in a default
float 1. for a shape index. That is no longer legal. The problem is
fixed by using an array reshape, which also avoids potential overflow in
the original computation.

Closes #4489.
TST: Add some tests for random.multivariate_normal.

Explicitly Test that the default shape does not raise a
DeprecationWarning.

Check that a covariance matrix that is not positive-semidefinite
raises a RuntimeWarning.
DOC: Note new random.multivariate_normal warning in release notes.