Make Numeric#nonzero? behavior consistent with Numeric#zero?

`Numeric#zero?` returns `true` or `false`, while `Numeric#nonzero?` returns `self` or `nil`. This patch fixes this inconsistency and adds a `Numeric#nonzero` (non-predicate) method that returns `self` or `nil` for chaining comparisons.