Remove memory_management_type enum, add a dtype flag to indicate destructor
Add the start of a dtype_dtype which makes ndobjects holding type 'dtype'

As part of this, remove the ndobject(dtype) constructor,
and replace it with the empty(dtype) function. This way,
ndobject(dtype) can create an ndobject of type 'dtype' holding
the dtype provided, instead of being an ndobject of the
specified dtype.
Add objectarray memory block for dtypes with data destructors
A bit more code towards objectarray memoryblock usage
Add a test of a date function + var dim