Made TimePointInterface implement DateInterface as any concrete time point must have a date. Stopped using unixTime for date comparisons.
Made Date::compare() a little more resilient, while keeping some optimisations.