Update courses
Break apart reps into reps and devDeps
Make sure `start` and `end` are uppercase in timestrings

Allows things to give input of lower-case pm and am bits
... turns out, we do need `should` — it's used in the mocha tests.
Add check for forced starting-in-AM courses
Remove testCourseTimes function
Update example output from checkScheduleTimeConflicts
Clean up some of findDays

- Move the day object into `const DAYS`
- Switch most things to let
- Switch the last map to use an arrow function
Use more lets in findDays
Put the else on the next line
Lowercase daystring and timestring
Add comma to the last item in the findTimes result
Update the regex in findDays

- It's now understandable
- It now runs left-to-right in a logical fashion
- The replacement only needs to use one argument
- The extra space is now at the end
- We use substr, instead of trim, for speed / because we can.
Always run the replace function

Theoretically, this new version should never need to run over the string more
than once, while the old version could need up to two runs. Plus, this gets rid
of a branch, which is always nice.
Create cleanTimestringSegment

and only split the string once.
Switch more vars to lets in time.es6
Switch findTimes AM/PM checks to regexes

Remove the two iterations of the string in favor of... two iterations
over the string.

On the other hand, we did remove the extra iterations imposed by
indexOf, so that's an improvement.
Update courses
Update various packages
Now that we've updated gulp-sass, we can remove the travis stuff for it