added timeout operator

ok, I thought that it shouldn't stop streaming after onError was sent downstream. Will try to fix and submit commits