Optimize the 'error' signature

As per #80

This will break the source compatibility. E.g., `Observable.error[Int](new Exception(msg)).firstOrElse(10).toBlocking.single` won't be compiled.

Hold off until we prepare to release 0.24.0.