rxrust 0.15.0

A Rust implementation of Reactive Extensions.
Documentation
# A small guide for developer

## How To implement a operator type?

- Add a method in `Observable` to construct your operator type.
- Implement `Observable` for your operator type.
- Implement `LocalObservable` for your operator type in order to handle a subscription (upstream) for single-threaded use.
- Implement `SharedObservable` for your operator type in order to handle a subscription (upstream) for multi-threaded use

## How to implement a creation operator?

Creation operators are functions that can be used to create an Observable with some common predefined behavior. `rxRust` already has a generic struct named `ObservableBase<LocalEmitter>` for implementing creation operators.

`ObservableBase<LocalEmitter>` assume those Observables accept a `Subscriber`  to emit values. So an easy way to implement a creation operator is :

- First, implement an `XxxEmitter` type which implements a `LocalEmitter` trait.
- Second, implement the function you want, It should return a concrete type `ObservableBase<XxxEmitter>`.
- Third, like `LocalObservable`, `LocalEmitter` has a thread-safe version named `SharedEmitter`, remember to implement it for your `XxxEmitter`.