check first if canonicalization is wanted before looking if denominator is 1 in Rational
Fix bug where dregexp would break its own options.

A DRegexp node would construct its Regexp by passing the
RegexpOptions along directly. However, some construction paths
proceed to modify those options, setting "fixed" if the incoming
string is ASCII-8BIT. Because the options were never copied, this
broke the original DRegexp node causing all future regexp to also
be marked "fixed".

I modified the construction paths the interprter uses to always
clone the incoming RegexpOptions.

We should make RegexpOptions immutable in the future, to avoid
this sort of issue.
add a failing test for overflow in Time#+
avoid NSec going above 10^6 in RubyTime
that should actually be ">=", RubyTime NSec range is [0, 999 999]
use expect instead of should for better rspec
add a couple Time test to the index