Consolidate all message date handling code in a single class

Allows us to share caching of date data and provides a single location
to ensure the timezone is set if TZ data will be displayed to the user.
Request #13317: Also display time for Yesterday's date.

Something sent at 11 PM yesterday may very well need to be treated
differently from something sent at 1 AM. So time is still important in
the last ~24 hours.

But +24 hours, time becomes of insignificant enough importance that we
don't need to show in mailbox screen.

Not sure if this is the best UI, but will play around in git master for
now.