Fixes to "Fix Numpy 1.20.0 by initializing PyArray_Descr portably"

- 'pdescr' must be derived from NPY_VOID. The C arrays being viewed contain
  arbitrary C data (which are wrapped by Python objects on the fly), not the
  Python objects themselves (for which NPY_OBJECT would be used).
- Restore flags and other settings from the static PyArray_Descr
  initialisation. Some (e.g. 'byteorder') likely already have sensible defaults,
  but better safe than sorry.
- Remove 'NPY_ITEM_IS_POINTER' from 'flags'. It is essentially deprecated by
  Numpy 1.20.0, and in any case appears not to be needed, as the logic of what
  elements are "pointers" is already handled by SWIG. Since we don't need this
  flag, we also don't need the hard-coded 'names' and 'fields'. (I imagine this
  would break a number of things by forcing access to SWIG objects through the
  'swigobj' field, but never got this working so couldn't test it out.)
- Restore the 'Py_INCREF(*pdescr)' before returning 'pdescr'. This is CRITICAL
  otherwise, as described in the comment, PyArray_NewFromDescr() steals
  references from 'pdescr' which is then eventually destroyed, which causes
  random segmentation faults throughout Python (and makes for fun debugging!)
56 jobs for numpy-1.20.0-compatible-dtype-initialization in 215 minutes and 44 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  .Pre
passed make-dist #1184003

00:06:28

passed make-dist:lal #1184004

00:01:56

 
  Lal
passed lal:conda:fftw #1184007

00:31:39

passed lal:conda:mkl #1184008

00:35:26

passed lal:deb #1184006

00:12:57

passed lal:rpm #1184005

00:15:19

 
  Lal Frame
passed lalframe:conda #1184011

00:31:29

passed lalframe:deb #1184010

00:06:30

passed lalframe:rpm #1184009

00:05:57

 
  Lal Meta Io
passed lalmetaio:conda #1184014

00:28:25

passed lalmetaio:deb #1184013

00:06:28

passed lalmetaio:rpm #1184012

00:05:47

 
  Lal Simulation
passed lalsimulation:conda #1184017

00:33:08

passed lalsimulation:deb #1184016

00:09:48

passed lalsimulation:rpm #1184015

00:09:22

 
  Lal Burst
passed lalburst:conda #1184020

00:34:02

passed lalburst:deb #1184019

00:16:20

passed lalburst:rpm #1184018

00:18:57

 
  Lal Inspiral
passed lalinspiral:conda #1184023

00:34:43

passed lalinspiral:deb #1184022

00:09:22

passed lalinspiral:rpm #1184021

00:08:40

 
  Lal Pulsar
passed lalpulsar:conda #1184026

00:39:06

passed lalpulsar:deb #1184025

00:11:41

passed lalpulsar:rpm #1184024

00:12:04

 
  Lal Inference
passed lalinference:conda #1184029

00:53:21

passed lalinference:deb #1184028

00:11:45

passed lalinference:rpm #1184027

00:10:40

 
  Lal Apps
passed lalapps:conda #1184032

00:20:47

passed lalapps:deb #1184031

00:12:06

passed lalapps:rpm #1184030

00:14:57

 
  Lint
passed lint:coala #1184034

00:01:38

passed lint:python #1184033

00:01:17

 
  Documentation
passed documentation #1184035

00:06:46

 
  Integration Tests
passed coverage #1184038

00:47:06

19.19%
failed lalinference_testjob #1184235

00:06:02

passed top-level #1184037

00:40:35

failed lalinference_testjob #1184036

00:06:00

 
  Compiler Tests
passed clang:10 #1184039

00:33:24

passed clang:11 #1184040

00:32:07

passed clang:dev #1184041

00:31:47

passed cuda #1184046

00:14:48

passed gcc:10 #1184045

00:33:05

passed gcc:7 #1184042

00:28:00

passed gcc:8 #1184043

00:29:18

passed gcc:9 #1184044

00:29:03

 
  Platform Tests
failed platform:conda:linux #1184050
allowed to fail

00:15:01

passed platform:debian:buster #1184047

00:30:54

passed platform:macos:highsierra #1184048
macos_highsierra

00:23:17

passed platform:macos:sierra #1184049
macos_sierra

00:24:17

 
  Upgrade Tests
passed upgrade:conda:linux #1184053

00:05:56

passed upgrade:debian:stretch #1184052

00:04:20

passed upgrade:rpm:el7 #1184051

00:06:32

 
  Wheels
passed wheel:cp36-cp36m-manylinux2014 #1184054

00:14:28

passed wheel:cp37-cp37m-manylinux2014 #1184055

00:15:56

passed wheel:cp38-cp38-manylinux2014 #1184056

00:14:49

passed wheel:cp39-cp39-manylinux2014 #1184057

00:14:35

 
Name Stage Failure
failed
lalinference_testjob Integration Tests
  File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 196: ordinal not in range(128)
Uploading artifacts for failed job
Uploading artifacts...
WARNING: example/: no matching files
ERROR: No files to upload
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
platform:conda:linux Platform Tests
make[1]: Leaving directory '/builds/leo-singer/lalsuite'
make[1]: *** [Makefile:416: check-recursive] Error 1
make: *** [Makefile:690: check] Error 2
Uploading artifacts for failed job
Uploading artifacts...
*/test/python/junit*.xml: found 5 matching files and directories

Uploading artifacts as "junit" to coordinator... ok
id=1184050 responseStatus=201 Created token=WVszszor
Cleaning up file based variables
ERROR: Job failed: exit code 1