Make Time and DateTime #end_of_* methods consistent

Before:
  Time.now.end_of_month.to_datetime != DateTime.now.end_of_month,

After: 
  Time.now.end_of_month.to_datetime == DateTime.now.end_of_month

That's because of Time using sec_fractions for end_of_* methods, while DateTime's methods ignored sec_fractions (even though it's supported by the class). 

This fixes https://github.com/rails/rails/pull/16955