Provide a SpecializationInfo describing spec to the callback.
The info (and the buffer its data' pointer references) is valid only for the
duration of the callback, which is exactly the window in which it needs to live:
pipeline creation copies the constant values out. Build and create the pipeline
inside the continuation.
An empty specialization (e.g. () or an empty list) yields Nothing, so the
shader stage's specializationInfo stays unset.