fix sorting of calendar_events api

the sort keys used for the calendar_events api were not stable (could
contain NULLs) which caused pagination to skip some items, depending on
how postgres optimized the query

for additional information, see:
http://www.postgresql.org/docs/9.3/static/queries-limit.html

closes CNVS-13497

test plan:
 * create 51+ assignments in a course (pagination boundary)
   - some with no due date
   - some with due dates
   - some with overridden due dates
   ! creation order is critical !
     creation order of each sample type above should be mixed with the
     creation of others. additionally, the dated variants should be
     created in chronological as well as reverse-chronological order.
 * create 51+ calendar events in a course (pagination boundary)
   - some undated
   - some with dates
   ! creation order is critical !
     creation order of each sample type above should be mixed with the
     creation of others. additionally, the dated variants should be
     created in chronological as well as reverse-chronological order.
 * ensure the following pages account for all above items:
   - syllabus
   - calendar

Change-Id: If1de63d8dcfbf6cfc17613e47263c5a2aa25fd4d
Reviewed-on: https://gerrit.instructure.com/38653
Tested-by: Jenkins <jenkins@instructure.com>
Reviewed-by: Joel Hough <joel@instructure.com>
QA-Review: Steven Shepherd <sshepherd@instructure.com>
Product-Review: Janelle Seegmiller <jseegmiller@instructure.com>