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).
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
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