updated default_delete to not use delegated constructors, array
specialization checks for array convertible not pointer convertible.