Try to increase the accuracy of the heuristic we use for determining date format

When we parse a schedule, we have to decide what date format Quest uses. It can change from term to term, and person to person. This is the implementation that @jlfwong and I discussed on Hipchat. 

We look for the first date format we know is correct with a reasonably high accuracy, and use that for the rest of the items. All the JS tests still pass, and I can look at adding in another test that deals with a different date format than we currently test for, if the code looks good. 
All the parsing logic is being duplicated in getDateFormatUsed() above. Maybe you should be store the results of the parsing during the first pass rather than re-processing it when you're doing the date parsing heuristics.