BUG: fix crash when sending interrupt signal to fft functions

the SIGINT handling code must be in the GIL released section so the
longjmp does not skip the retaking.
This implies that the signal handlers must use thread local storage to
avoid a crash when sending interrupt to threaded fft functions.
Distribution of SIGINT to each threads must be handled by the
application as only the master thread receives it
Closes gh-4634
MAINT: move variable attribute checks into a common variable

also rename GCC_ATTRIBUTES to FUNCTION_ATTRIBUTES
BUG: Fix missing fragment in ARGOUTVIEWM typemaps.

The argout typemaps of all the ARGOUTVIEWM typemap suites make use of the
free_cap function, defined in the NumPy_Utilities fragment, which was not
listed in the fragment argument of the typemaps.

As a result, the free_cap function is not included in the source generated
code by SWIG, and the code do not compile (unless another typemap including
the missing fragment has been used).
ENH: improve VOID_compare performance

use small memory cache for the temporary data allocation in the compare
loop and use npy_is_aligned instead of the very expensive signed
division.

Improves unaligned compares which occur in structured arrays with
strings:

d = np.ones((2,10000), dtype=np.dtype([('f0', 'S5'), ('f1', '<i4')]))
%timeit np.argsort(d)
100 loops, best of 3: 8.6 ms per loop

vs before:
100 loops, best of 3: 23.7 ms per loop
BUG: nanpercentile/nanmedian 0-d with output given.

Also some PEP-8 fixes and test improvements
BUG: avoid infinite loop for small kappa in vonmises

rho results in 0. for kappa < 1.4e-8 whch leads to nans appearing and an
infinite loop.
the second order taylor expansion is more precise up to at least 1e-5.
Closes gh-4720
Merge pull request #4749 from seberg/0d-nanperc-out

BUG: nanpercentile 0-d with output given.
Merge pull request #4746 from juliantaylor/void-compare-opt

ENH: improve VOID_compare performance
DOC: Rework the advanced indexing documentation.

Mostly makes the advanced indexing doc much more example based,
and prominently mentions the np.ix_ function.
Some subtleties (some of which are new) are also mentioned.
Merge pull request #4076 from seberg/advanced-indexing-doc

DOC: Rework the advanced indexing documentation.
Merge pull request #4745 from dfroger/swig_missing_fragment

BUG: Fix missing fragment in ARGOUTVIEWM typemaps.
Merge pull request #4692 from juliantaylor/fft-interrupt

BUG: fix crash when sending interrupt signal to fft functions
Merge pull request #4751 from juliantaylor/vonmises-fix

BUG: avoid infinite loop for small kappa in vonmises