EmptyObserver and TestObserver

* Remove `EmptyObserver` as it was confusing compared to `Observers.empty()` (fixes #1741)
* Make `TestObserver` not throw `OnErrorNotImplemented` if a delegate is not provided (fixes #1571)
Should not use Observers.empty() here. Once it's unsubscribed, onError should be ignored, but Observers.empty() will throw an Exception for `onError`. Why not put EmptyObserver into an internal package?