Created row.dateRange, removed row.startText/row.endText

This was added several extra calls across the app so was moved up to
the controller instead.  This will also give us the flexibility to
tailor the range a little more.  The first change was for single-day
classes, now they just show the day of the class rather than duplicate
days.  Example:

5 Jan 2015 - 5 Jan 2015 becomes just 5 Jan 2015 everywhere.
Breaking change to schema/scheduling date ranges

Removed end date recording in SharePoint and replaced with an integer
that for date counting.  The old method was causing a lot of strange
behavior thanks to FullCalendars really dumb implementation of date
ranges.  This should prevent future issues with dates, shrink the
database a little and stabilize edge cases.

Also removed duplicate date values elsewhere that were used by
FullCalendar.  Most of our issue relate to the very unintuitive
exclusive date format that FullCalendar uses.  Basically it counts date
ranges as the next day, I.e. a class of 5-9 (M-F) January 2015 would
show up as 5-10 Jan 2015.  Because that makes total sense.  Oh wait, no
it doesn’t.  Maybe we’ll eventually just write FullCalendar our of the
app altogether…