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 #1184003
make-dist

00:06:28

passed #1184004
make-dist:lal

00:01:56

 
  Lal
passed #1184007
lal:conda:fftw

00:31:39

passed #1184008
lal:conda:mkl

00:35:26

passed #1184006
lal:deb

00:12:57

passed #1184005
lal:rpm

00:15:19

 
  Lal Frame
passed #1184011
lalframe:conda

00:31:29

passed #1184010
lalframe:deb

00:06:30

passed #1184009
lalframe:rpm

00:05:57

 
  Lal Meta Io
passed #1184014
lalmetaio:conda

00:28:25

passed #1184013
lalmetaio:deb

00:06:28

passed #1184012
lalmetaio:rpm

00:05:47

 
  Lal Simulation
passed #1184017
lalsimulation:conda

00:33:08

passed #1184016
lalsimulation:deb

00:09:48

passed #1184015
lalsimulation:rpm

00:09:22

 
  Lal Burst
passed #1184020
lalburst:conda

00:34:02

passed #1184019
lalburst:deb

00:16:20

passed #1184018
lalburst:rpm

00:18:57

 
  Lal Inspiral
passed #1184023
lalinspiral:conda

00:34:43

passed #1184022
lalinspiral:deb

00:09:22

passed #1184021
lalinspiral:rpm

00:08:40

 
  Lal Pulsar
passed #1184026
lalpulsar:conda

00:39:06

passed #1184025
lalpulsar:deb

00:11:41

passed #1184024
lalpulsar:rpm

00:12:04

 
  Lal Inference
passed #1184029
lalinference:conda

00:53:21

passed #1184028
lalinference:deb

00:11:45

passed #1184027
lalinference:rpm

00:10:40

 
  Lal Apps
passed #1184032
lalapps:conda

00:20:47

passed #1184031
lalapps:deb

00:12:06

passed #1184030
lalapps:rpm

00:14:57

 
  Lint
passed #1184034
lint:coala

00:01:38

passed #1184033
lint:python

00:01:17

 
  Documentation
passed #1184035
documentation

00:06:46

 
  Integration Tests
passed #1184038
coverage

00:47:06

19.19%
failed #1184235
lalinference_testjob

00:06:02

passed #1184037
top-level

00:40:35

failed #1184036
lalinference_testjob

00:06:00

 
  Compiler Tests
passed #1184039
clang:10

00:33:24

passed #1184040
clang:11

00:32:07

passed #1184041
clang:dev

00:31:47

passed #1184046
cuda

00:14:48

passed #1184045
gcc:10

00:33:05

passed #1184042
gcc:7

00:28:00

passed #1184043
gcc:8

00:29:18

passed #1184044
gcc:9

00:29:03

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

00:15:01

passed #1184047
platform:debian:buster

00:30:54

passed #1184048
macos_highsierra
platform:macos:highsierra

00:23:17

passed #1184049
macos_sierra
platform:macos:sierra

00:24:17

 
  Upgrade Tests
passed #1184053
upgrade:conda:linux

00:05:56

passed #1184052
upgrade:debian:stretch

00:04:20

passed #1184051
upgrade:rpm:el7

00:06:32

 
  Wheels
passed #1184054
wheel:cp36-cp36m-manylinux2014

00:14:28

passed #1184055
wheel:cp37-cp37m-manylinux2014

00:15:56

passed #1184056
wheel:cp38-cp38-manylinux2014

00:14:49

passed #1184057
wheel:cp39-cp39-manylinux2014

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