Remove duplication from time/date-time/date

Methods moved:
:ago, :beginning_of_day, :middle_of_day, :beginning_of_hour,
:beginning_of_minute.

Date#change is now aware of hours/minutes/seconds, and when they are
passed to it, a TimeWithZone will created for that date at midnight.

The following new methods are a results of this change: Date#beginning_of_hour and, Date#beginning_of_minute