ENH: Improve cryptic error messages for invalid FFT sizes

fft([]) used to produce "error: (n>0&&n<=size(x)) failed for 1st keyword n: zrfft:n=0".  Now it says "ValueError: Invalid number of FFT data points (0) specified."

BUG: Also fix my previous error message for fftn that would raise TypeError if s were a tuple.
TST: remove all docstrings from test functions for stats.morestats
TST: add tests for stats.probplot, and fix minor issues and docs.

Closes gh-677 (Statistics Review).
MAINT: clean up some more code in stats/morestats.py
MAINT: address review comments of @josef-pkt on gh-2991.

Adds an example for stats.probplot, and accepts more inputs for the dist
keyword.
TST: Add tests for invalid fft sizes
DEP: stats: Deprecate randwppf and randwcdf
DEP: stats: use np.deprecate to emit a warning
Minor reST typo
Merge pull request #3009 from steko/patch-1

Minor reST typo
Merge pull request #2991 from rgommers/review-probplot

Test and fix up stats.probplot
Fix small issues and improve formatting in optimize tutorial
Add Result class to optimize API docs
Corrects documentation error

Item 22. in cdist description had parenthetical that read "see sokalsneath function documentation", but should have read, "see wminkowski function documentation." That is fixed here.
Merge pull request #3012 from lemonlaug/master

DOC: corrects documentation error in spatial.cdist
implemented choice of cuts in Legendre function P
Merge remote-tracking branch 'upstream/master' into clpmn
fixing signs in the derivative of LegendreP
MAINT: Remove duplicated words in docstrings or comments in python files (plus a little copy-editing afterwards).
MAINT: Remove a few duplicated words in the docs.