BUG: Backport #3188, Fix numpy.void pickling.

During call to PyArray_scalar a PyVoidScalarObject is created, and it's
obval field set to a newly allocated block of memory of the correct item
size. With a null base member, the subsequent call to copyswap can not
determine an item size and returns without copying.  Adding direct copy
of input data if no base is provided, as no swap is required.

Adding regression test for constructor and original pickle repro case.