Adds some tz support, to sleep list and middleware, along with editing tz in user profile.
Fixes timezones in the sleep list and sleep entry.

The sleep list does everything right; it passes through to the template
the timezone in which to render each sleep.  The entry interface is a
little bit hacky, since JS deals in local time, but basically, it
interprets everything correctly in local time on entry, and saves it
correctly, it just passes something slightly hacky in the JSON sleeps
view for display later.  Details in the comment on sleep/views.py:320.