Implement Supply.on_demand.

Provides an easy way to create on-demand supplies.
Don't leak VM handle from async socket close.