ENH: optimize STRING_compare by using memcmp
STY: minor PEP8 fixups for numpy/fft.
STY: PEP8 fixups for numpy/random.
BUG: Fix None comparison giving FutureWarning in choice function.

This is in numpy/random/mtrand/mtrand.pyx where the choice function
was using comparisons of the form `None != p`.
BUG: Fix bugs in unused code paths.

The `getargspec` needed to import the disassembler to support parsing
tuple arguments. Since numpy never uses those, the corresponding code
is deleted and an TypeError raised if such arguments are encountered.

Also fix the unused formatargs function so it does not require the
string module.
STY: Minor PEP8 fixes.
MAINT: Get rid of some harmless gcc warnings about macro redefines.

The Python.h header likes to be included first, otherwise warnings about
redefining "_POSIX_C_SOURCE" and "_XOPEN_SOURCE" are generated. This is
really a problem with the Python.h header, but can be worked around by
changing the order of inclusion.
Merge pull request #4970 from charris/fix-compile-warnings

MAINT: Get rid of some harmless gcc warnings about macro redefines.
MAINT: Get rid of some harmless gcc warnings about macro redefines.

The Python.h header likes to be included first, otherwise warnings about
redefining "_POSIX_C_SOURCE" and "_XOPEN_SOURCE" are generated. This is
really a problem with the Python.h header, but can be worked around by
changing the order of inclusion.
Merge pull request #4971 from charris/fix-redefined-macro-warnings

MAINT: Get rid of some harmless gcc warnings about macro redefines.
BUG: fix memoryleaks in datetime dtype parsing

closes gh-4973
closes gh-4974
Merge pull request #4975 from juliantaylor/datetime-memleak

BUG: fix memoryleaks in datetime dtype parsing
Correct the fill_diagonal examples
Merge pull request #4981 from hpaulj/fill_diagonal

Correct the fill_diagonal examples
BUG: Fix NaN handling in npy_ObjectMax and npy_ObjectMin.

These functions currently fail randomly for Python < 3.x because they
use PyObject_Cmp, which looks at addresses for NaN objects. The fix is
to use PyObject_RichCompareBool, which is available in Python >= 2.6.
Note that for Python 2.6 and 2.7, PyObject_RichCompareBool falls back on
PyObject_Cmp when an object doesn't provide rich compare.

Closes #4903.
TST: Add tests for maximum/minimum of object arrays with nan.

There is a random element to these tests, so that they may fail to
fail when python compare is being used instead of richcompare.
Merge pull request #4941 from charris/fix-numpy-compat-_inspect

Fix numpy compat  _inspect
Merge pull request #4982 from charris/gh-2941

Fixup of PR #4921
Merge pull request #4936 from charris/pep8-numpy-fft

STY: minor PEP8 fixups for numpy/fft.
Merge pull request #4937 from charris/pep8-numpy-random

Pep8 numpy random