Add timezone to user model
Allow editing a user’s time zone in user_detail
Use timezone_input for scheduler widget
The Big Timezone Refactor™

* Server time zone is now always set to UTC.
  This means any times in the database are UTC.
* LocaleUtil::formatDate will convert from UTC to the user’s preferred time zone.
* The time zone from the settings (general/timezone) is used for users without a
  configured time zone and to format dates when no user is logged in.

The reason for this change is to make server migrations simpler:
no matter where the server is physically located, all the dates
it has to deal with are always in UTC.

If anything breaks, we probably need to format a date before output.
Use server time zone instead of UTC explicitly

Since the server time zone is UTC, this should not matter.
But should it ever be some other zone, it’ll still work.