added timeout operator

This logic is totally flawed. 

First of all, this `onError` call is concurrent with `onNext`, being a violation of [rule 1.4.2](https://github.com/monifu/monifu/wiki/Rx-Contract-and-Design-Guidelines#142-must-not-call-onnext--oncomplete--onerror-concurrently) - MUST NOT call `onNext` / `onComplete` or `onError` concurrently.

Second problem - Who informs the data source that it should stop streaming after `onError` was sent downstream? Subsequent `onNext` events can end up being sent downstream, being a violation of [rule 1.4.6](https://github.com/monifu/monifu/wiki/Rx-Contract-and-Design-Guidelines#146-once-oncompleteonerror-was-signaled-it-is-required-that-no-further-events-are-sent). The tests you did work because downstream is protected by a `SafeObserver` that wraps the subscriber and that tries to stop subsequent `onNext` events that happen after `onComplete` or `onError`, but that's provided as a safe-guard and thus you cannot rely on it, plus it's unsynchronized, which means it breaks when concurrent calls happen (i.e. a non-deterministic, hard to reproduce bug).