Add behavior to Date for Time related methods

Add Date#to_i which return the equivalent number for TimeWithZone#to_i at the beginning
of the day.
Date#seconds_until_end_of_day, Date#beginning_of_hour, Date#beginning_of_minute
will also behave like TimeWithZone would have at the beginning of the object's
date.