BUG: cluster.vq.whiten returns nan or inf when std==0

When the standard deviation of a column of the observations is zero,
vq.whiten should raise a warning and set the zero-std to 1.0 to avoid
nan/inf which may cause the kmeans functions work incorrectly.
Fixes gh-3499.
Merge pull request #3504 from richardtsai/vq_whiten_zero_std

BUG: cluster.vq.whiten returns nan or inf when std==0