Begin making getCourse asynchronous

Using promises and a cache local to each schedule, fetch courses and
return a promise for those courses.
Make schedule.validate() async

Also remove isValid and conflicts
Rename a parameter in checkScheduleTimeConflicts
Don't prime the course cache anymore
Make getCourse{s} return a promise from the DB
Make Semester use the async methods

Also move stuff from this.schedule to setState
Remove leftover logging statements
Put storeCourses back into its rightful location in the hierarchy
Use let instead of var in more places
Throw an error in getCourse when a course cannot be found
Use es6 template syntax in a few places
Use promises in deptNumToCrsid and checkCoursesForDeptNum
Move two variables back above the functions
Pass props into areaOfStudy.load
Extract the no-result result to its own object
Use promises in asianStudies.es6 and areaOfStudy
Switch asianStudies over to let
Return an array of promises that gets flattened properly from activeCourses
Clone courses that are deptNumToCrsid'd
Move asianStudiesConcentration to promises