handle assignments where user applied due_at is nil

Fixes an issue where if an assignment had an applied due date of `nil`,
User#upcoming_events would throw an exception when trying to sort a list
of events/assignments, because comparing nil against Time/TimeWithZone
objects made the sorting invalid ("Comparison of Array with Array
failed").

test plan:
  - Make a course with a student. the student shouldn't be in the
    default section for the course.
  - As a teacher, create two assignments.
  - For the first assignment, have a a section that does not have a due date
    (blank due date when editing the assignment form). Make sure the
    student is in this section that has no due date.
  - For the second assignment, create as many overrides as you like,
    ensuring that each override has a real due date.
  - View the dashboard. The right side bar should load without you
    getting any errors.
  - View the course home page (/courses/:course_id). It should load
    without any errors as well.

Change-Id: I0547ce16354ec1f735b5b16c1937853e245f790b
Reviewed-on: https://gerrit.instructure.com/18482
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Amber Taniuchi <amber@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>