Upgraded DateParser

> DateParser now accepts more flexible formats, e.g. "d/M", "today
0300", "tomorrow 0300".
> Changed DateTime compareTo() back to assuming that DateTimes with the
same date but one missing time are equal. This is because it is messing
up the block order (which assumes that if there is no time entered, we
should block from that time to 2359. Assuming the DT without the time is
earlier means we will block from 0000 to the specified time.).