format: Make fmt_date_template() human-friendly, respect field width.
The strings that fmt_date_template() returned were almost but not
quite the kind of strings that humans expect to see. For one, they
always used "yy", even though the code uses 4-digit years ("yyyy")
when the field width is sufficient. Similarly, they never included
seconds (i.e. omitted ":SS"). Finally, FMT_MOYR had an "X" where
one would expect a space.
This commit corrects all of the above issues. Future commits will
make more use of fmt_date_template().