Significantly lower the number of finalized objects

Currently almost all objects allocated call `_d_newclass`, however `_d_newclass` unconditionally sets the finalize flag, which means the GC is currently trying to finalize most allocations that are made, even though those allocations don't have a destructor in the first place. This changes the behavior of `_d_newclass` so that the finalize flag is only set if there actually is a destructor.