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)
We could, or just create a static inner class here as it's rare this is needed.

Thanks for catching this. I'll fix this shortly.