Fix behavior of Comparable methods when <=> return nil

If `<=>` method return not Integer value,
The ISO spec of some Comparable methods(`<`,`>`,`<=`,`>=`) defined that "the behavior is unspecified".
And _master_, return `false` that time.

But, I think it's should be raise ArgumentError like that.

before

```ruby
> 0.0 <=> nil
 => nil
> 0.0 < nil
 => false
> 0.0 > nil
 => false
> 0.0 == nil
 => false
```

after

```ruby
> 0.0 <=> nil
 => nil
> 0.0 < nil
 => ArgumentError
> 0.0 > nil
 => ArgumentError
> 0.0 == nil
 => false
```