Detect vendor versions of GNU Compilers

Cray and other HPC vendors provide patched versions of the GNU compilers
with modified version strings.  Use re.search instead of re.match in the
version detection scripts to account for modified version strings.

Ref: https://github.com/numpy/numpy/issues/4259
ENH: remove insecure mktemp use

mktemp only returns a filename, a malicous user could replace it before
it gets used.
Merge pull request #4262 from juliantaylor/mktemp-remove

remove insecure mktemp usage
ENH: Attempt to rewrite the index parsing.

Some optimizations still missing.
WIP: Speed improvements by using EXTERNAL_LOOP
WIP,TST: Fix tests to match new behaviour
WIP: use fast_take and fix Deprecations
WIP,TST: Small fixes for the tests
WIP: bug fixes and field oder access change
WIP,TST: Fixup python3 tests
WIP: fix field order; And MapIterNext iteration end
WIP,TST,DOC: tiny fix

maybe triggers Travis too...
WIP: Move Ellipsis setting check and clear warnings
WIP: Restore binary compatibility of MapIterObject (hopefully)
WIP,ENH: Already allow boolean scalars for 0-d arrays

Since indexing into a 0-d array with an integer is impossible,
we can disable any conversion/interpretation is integer code
to special case the 0-d array for now and fix this annoying
issue...
WIP,BUG: Fix outer iteration bug.
Attempt to start optimizing setmap
Followup stuff
Start trying to include operand into iterator
Working on a thourough rework of mapiter