In 5.0.0 for the Scala driver use Observable[Unit] instead of Observable[Void] to allow for composable Observables.
The implementation of MapObservable and FlatMapObservable in the scala driver can lead to unexpected results with `Publisher[Void]`.
Since Void is not instantiable, the impact on the monadic functions can be missed and lead to bugs. i.e. map/flatmap called on a `Publisher[Void]` will never be invoked.
This may lead to bugs in clients which are not aware of this. For example
will result in an empty List.
while we can work around this by wrapping every Publisher[Void] with our `completeWith(obs, ()): Observable[Unit]`
It would seem safer for clients if the MapObservable/FlatMapObservables threw exceptions if onComplete was called without calling onNext.
An alternative may be to replace occurences of `Publisher[Void]` with `Publisher[Unit]` so that clients can use map/flatMap to react to completion (rather than being forced to wrap or use the reactive API (e.g. `obs.subscribe` )