Rework of the design decisions for the 2.x branch
Rework of the design decisions for the 2.x branch

akarnokd/RxJava,benjchristensen/RxJava,reactivex/rxjava,NiteshKant/RxJava,AttwellBrian/RxJava,AttwellBrian/RxJava,ReactiveX/RxJava,NiteshKant/RxJava,artem-zinnatullin/RxJava,akarnokd/RxJava,reactivex/rxjava,ReactiveX/RxJava,artem-zinnatullin/RxJava