Validate an optional initializer.
(valid-initer-option initer? target-type lifetime? table ienv) → (mv erp new-initer? return-types new-table)
If there is no initializer, validation succeeds. Otherwise, we validate the initializer.
The guard on the target type is weakened, compared to valid-initer: if there is no initializer, the type can be anything, because the restriction applies only to initializers [C17:6.7.9/3].