fix day boundary in overridden time display

fixes CNVS-13541

write specs to identify the issue
 (and to confirm that it's not present
  in the javascript layer that does similar
  formatting work)

start breaking apart text helper
because we need some object that
can persist a zone override through
all the helpers

pull out a set of utils classes for dealing
with date and time presentation

fix the zone override when doing a date time
presentation across multiple zones

TEST PLAN:
 - Create a new course shell and go to the 
    courses settings page and set the courses 
    time zone as Eastern and save the change.
 - Create a new assignment and put a due date of 
    whatever day you want, but have the time be 
    11pm and save it.
 - When the page reloads, hover your mouse over 
    the due date.
 - The due date should be correct
    (on the day after).


Change-Id: I3274a502545bdbbb482bc7e529446e2fa422740c
Reviewed-on: https://gerrit.instructure.com/42064
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Matthew Wheeler <mwheeler@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>