Make date parsing smarter with "hinted months"

The term "Hinted Months" just means a month that is specified by name,
and that in the parser, it's then indicated by tagging the parsed month.

The benefit of this is to help disambiguate dates that would be
ambiguous if only converted to the number.

For example: "Aug 12" and "12 Aug". It's clear to the reader what they
mean, but when converted to simply 8 and 12, it's unclear from the order
what is meant.

Doing so also required the addition of some macros to help hint it
along, since doing just straight comparisons with the hinted months was
yielding unexpected results. For example: `{mon, 1} > 31`  returns
true, so changing that comparison to an ?is_year/1 macro that does:
`is_integer(Y) andalso Y > 31`.