Fix Array#fill bug and behavior

* fix bug when use range of 3dots
* Array#fill nowhere defined that object can respond_to `bagin` and `end`. it's should be check by `kind_of?(Range)`