Use a set of disposables, and dispose on completed/error
Dispose of subscriptions when subscribers terminate
Test subscriber disposal
Merge branch 'master' into commands

Conflicts:
	Tests.hs
Add Scheduler.Unsafe with Show (SchedulerIO s v)