add empty optimisation for Observable.all