modified furuholm's helpful changes for clang
modified furuholm's helpful changes for clang

I did not want the private typedefs to hide the public ones in root.
The compiler needed a dependent name so I gave it a typedefs for
this_type and base_type where needed and used those to make the
inherited typedef references dependent name lookups. I have found that
using fixed names like this_type and base_type make it easier to move
and copy code around.

Reactive-Extensions/RxCpp,alexeymarkov/RxCpp,ReactiveX/RxCpp,Reactive-Extensions/RxCpp,ReactiveX/RxCpp,alexeymarkov/RxCpp,Reactive-Extensions/RxCpp,alexeymarkov/RxCpp,ReactiveX/RxCpp