Merge branch 'master' into dev/timezunami

Change-Id: Iaa0d7f3a33d2f368bb8e1ac417055504483f74f3
collapse date_timestamp and time_timestamp

into just timestamp. guess what -- the derivation of timestamp from iso
MAKES SENSE now. weird

(moar baby steps)

Change-Id: Ifec487e616b903afdd8ca1a8806c5eecca1f0c88
Reviewed-on: https://gerrit.instructure.com/31974
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
replace one-off fudge calculation with fudge call

now the use of user_offset and tz_offset is apparent -- it's just
fudging the parsed "true" timestamp into a date object that will format
as if in the profile timezone. this is what fudgeDateForProfileTimezone
is for; use it.

Change-Id: I82a82dc3f1946cd733e399331fe9d9950fa3b2f9
Reviewed-on: https://gerrit.instructure.com/31975
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
replace offset-fudging with tz() fudging

tz-format/browser-parse and browser-format/tz-parse are still not an
ideal pattern (we'll get rid of fudge/unfudge soon), and they're more
expensive, but they're a lot more accurate than trying to shift the date
around by offsets

Change-Id: Idda8ad375b7014c1aa0ebc38e756384a0f9d2c08
Reviewed-on: https://gerrit.instructure.com/31976
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
don't need this anymore

Change-Id: I8a663b53e05946b3c45c0c7da6945d6919ce9866
Reviewed-on: https://gerrit.instructure.com/31977
Reviewed-by: Jacob Fugal <jacob@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
Product-Review: Jacob Fugal <jacob@instructure.com>
QA-Review: Jacob Fugal <jacob@instructure.com>
Merge branch 'dev/timezunami' into master

test-plan:
 - regression on assignment due dates in:
   - matching profile/browser timezone
   - non-matching-but-dst-consistent profile/browser timezone
   - dst-inconsistent profile/browser timezone (e.g. Mountain vs.
     Arizona) with due date on far side of DST boundary

Change-Id: I3aa6b5f0e70c140394937db5f4a1afb1a25cacc1
Merge "Merge branch 'dev/timezunami' into master"