Don't call __destruct for objects where deferred __unserialize calls were not started (e.g. due to Serializable::unserialize throwing).
Skip over object properties that are uninitialized or unset when serializing, instead of serializing them as null.
This is done to avoid Errors when unserializing their values for php 7.4 typed properties.
Fix crashes related to unserializing instances of classes with php 7.4 typed properties.
Support php 7.4's __serialize/__unserialize the same way serialize()/unserialize() does.
This deliberately only supports __serialize/__unserialize in php 7.4, to making switching to/from serialize()/unserialize() as straightforward as possible.