Lazily instantiate nullable typed-object properties in fromArray()
Removes the requirement to eagerly initialize nested ValueObject properties in __construct() when they are nullable; fromArray() now creates the instance on demand based on the property's declared type.