Add a constructor to CountryTimezone that accepts Rationals.

Rename the existing CountryTimezone.new method new!. new! is now used
internally by RubyDataSource, passing the longitude and latitude as a
numerator and denominator in their lowest forms (for best performance on
Ruby 1.8).

ZoneinfoDataSource already uses Rationals to calculate the latitude and
longitude. It now calls CountryTimezone.new, passing the Rationals.