check first if canonicalization is wanted before looking if denominator is 1 in Rational
Guard RubyString.makeShared with 1_9 checks, so encoding is set.

We have a number of places in 1.9 logic where it eventually falls
back into 1.8 logic due to lack of version-splitting. In the case
of JRUBY-7195, the element grab from a MatchData shared the logic
in RubyRegexp.nth_match between 1.8 and 1.9 modes. However, the
logic there does not properly create new strings, leaving their
encoding set to default.

This commit modifies all paths to RubyString.makeShared I could
find with logic to use the "19" version if in 1.9 mode.

Fixes JRUBY-7195.
Re-exclude these intermittent failures while I investigate them.
Merge remote-tracking branch 'origin/master'