Implement schedule_on.

This allows a supply's more/done/quit to be scheduled on another
scheduler. Useful in GUI situations, for example, where the final
stage of some work needs to be done on some UI scheduler in order to
have UI updates run on the UI thread.