Built on top of the VirtualTimeScheduler from #269, add a TestScheduler that can create cold and hot observables that are scheduled over virtual time.