Deprecate and remove NEWZERO macro

NEWZERO uses calloc on pointers that are expected to be deleted with operator delete...  This is generally bad news for MSVC.  Also, NEWZERO creates inconsistent constructor behavior with C++'s default operator new, which can create confusion and lead to faulty assumptions.