Fix issues affecting dates before 1902, after 2037

Sakamoto day of week algorithm decrements natural month number by one;
zero-indexed month from tm64 should be incremented before passing.

In timestamp64, when recalculating epoch offset from year passed to time
function to target year in distant past or future, it is necessary to know
which side of the leap day the date falls, else first or last increment
may incorrectly include or exclude a leap day.

Revised Time#to_date to use Ruby 1.9 logic for conversion to Date, using
proleptic Gregorian calendar instead of default Date calendar.
Merge pull request #2350 from teleological/distant_time_fix

Fix issues affecting dates before 1902, after 2037