ENH: Use tp_basicsize, not NPY_SIZEOF_PYARRAYOBJECT, for allocation

This change allows C-API level subtypes of PyArray_Type without forcing the developer to rewrite the tp_alloc function and only change the amount of memory allocated.