Implement Numeric#step.size

Another _step_ (har har) towards #980.

Gets `Numeric#step.size` doing its thing by putting the following pieces in place:
* implement `Numeric#intervalStepSize` closely following the [MRI implementation](https://github.com/ruby/ruby/blob/09b02349c212cac6395e9a634e3d4610e9bbc48c/numeric.c#L1799) (this will also be useful for #1252 when implementing `Range#size`)
* implement `Numeric#floatStepSize` (https://github.com/ruby/ruby/blob/09b02349c212cac6395e9a634e3d4610e9bbc48c/numeric.c#L1748)), which `Numeric#intervalStepSize` relies on
* refactor `Numeric#floatStep19` to also use the new `floatStepSize`, which not only avoids duplication, but also fixes some tests
* create `Numeric#stepSize`, and use it to `enumeratorizeWithSize` our steps

We'll be able to un-exclude `test_size_for_step` from `test_enumerator` once Range#size is implemented (#1252).