Refactor left_nav.html for improved readability

* Partial rewrite of get_full_contentsection_list for improved
  concision, readability, and to change the shape of full_index_list:
 * Instead of a sorted list of lists of tuples, it is a dictionary of
   sorted lists of dictionaries. This allows for nicer lookups in
   left_nav.html with less iteration overall.
* Update to left_nav.html to take advantage of this change. Also
  introductes local variable value caching using {% with %}
* Introduction of byKey template filter, which allows lookup into a
  dictionary by tha value of a template variable, rather than by its
  name: i.e., 'somedictionary|byKey:variable' will return
  somedictionary[variable] rather than somedictionary['variable']
* Correction of {% url %} reverse for exams in left_nav.html
  (fixes #1630)
File format change from DOS to Unix
Merge pull request #1736 from Stanford-Online/jrbl-1630-exams-reverse-wrong

Jrbl 1630 exams reverse wrong