Fixing void scalar PyArray_Scalar constructor when *base==null.

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.

Resolves numpy/numpy#1550.
Resolving void scalar PyArray_Scalar constructor style issues.
Merge pull request #3188 from asford/master

Fixing numpy.void pickling.