BugFix: Emit an IllegalArgumentException instead of ArithmeticException if the observable is empty

This PR fixed the `average` issue in #423. If an observable is empty, `average` will emit an `IllegalArgumentException` instead of `ArithmeticException`.