added timeout operator

You're not taking into account that the downstream observer can `Cancel` its subscription, keeping the scheduler active and sending `onError` after the subscription has long been canceled. Please add a test for it.