Reimplement setStartDate, setStartTime, setEndDate, setEndTime to disallow the user to update date and time such that the end date/time is earlier than the start date/time. Rearrange the order of setStartTime and setEndDate in the constructor because the function endIsEarlierThanStart, which setEndDate depends on, requires that if startTime is not null, then endTime must also not be null.
Include new cases for TaskTest to cater to the cases where the user tries to update the start date/time or end date/time such that the end is earlier than the start.
Merge branch 'master' of https://github.com/cs2103aug2014-T13-2J/main