Clean up date formatting per bug 14067, remove assumptions that things like
20051300000000 will work. It's fine for dates-as-integers, but goes horribly
wrong when fed to $dbr->timestamp(), which calls gmmktime(). The latter function
has a bug/feature causing any 0s in the month or day field to cause a month
or day's *subtraction*. We might want to modify timestamp() to handle that, as
I can imagine any MW code would want to rely on such a feature, but that's not
this patch.
Also set a limit for Y2K38 problems, as gmmktime() doesn't like that very much either.