course_materials: update date display

* Refactoring course_materials to do the same work with less code
* Update future date display for live_datetime of course materials to
  ISO-8601 date format (i.e., YYYY-mm-DD)
Make section views more DRY and add zebra stripes

* Moves course-item LI into section.html
* Uses {% cycle %} to tag alternate rows of section.html items so they
  get alternating light and dark zebra stripes
* Adds thin gray line under section heading to create a visual break
  between sections

Conflicts:

    main/templates/content_group_buttons.html
	main/templates/content_sections/ready/section.html
	main/templates/exams/ready/exam_list_item.html
	main/templates/videos/ready/video_list_item.html
Limited ContentGroup admin. support & styling

* Support for parent relationship assignment on creation of new static
  pages (instances of models.AdditionalPage) and file uploads (instances
  of models.File)

* ContentSection.getChildren enhanced w/ greater flexibility
** Supports making sorting optional
** Supports optionally returning intermediate data structure
* ContentSection.countChildren corrected to actually work

* live_datetime calculation in get_course_materials updated to use
  ISO-8601 dates and runtime optimized

* Added ContentGroup.get_type, which runs in O(n), where n is the set of
  supported groupable types. TODO: make this a column on ContentGroup

* Added ContentGroupGroupFactory to provide a variety of utility methods
  to make creation and management of ContentGroup relationships more
  convenient. TODO: consider folding this functionality into
  ContentGroup

* Two API endpoints created to support querying object relationships via
  AJAX calls:
  * contentsection/get_children retrieves a ContentSection's child items
  * contentsection/get_children_as_contentgroup_parents retrieves a
    ContentSection's child items, but only those which are not
    themselves ContentGroup child items

* Rationalization of imports in every touched file
* Conversion to Unix line endings in every touched file

Conflicts:

	main/c2g/models.py
	main/courses/additional_pages/views.py
	main/courses/course_materials.py
	main/courses/files/actions.py
Completion of File upload parent assignment

* closes #1291
* Completion and bugfixes to File upload parent assignment
* Changes to materials page layout and button stylings

Conflicts:

	main/courses/course_materials.py
	main/templates/additional_pages/ready/additional_page_list_item.html
	main/templates/files/ready/file_list_item.html
	main/templates/problemsets/ready/problemset_list_item.html
	main/templates/videos/ready/video_list_item.html
Adding scaffolding for future unit testing
Parent/Child bugfixing get_course_materials

* Removed ContentGroupGroupFactory and moved class methods and members
  to ContentFactory
* Bugs fixed in course_materials related to delivering type and content
  information to templates
Merge branch 'master' into jrbl-1291-rebase-4

Conflicts:
	main/c2g/models.py
Line edits to address review comments
Merge branch 'master' into jrbl-1291-rebase-5

Conflicts:
	main/c2g/static/css/core/body.css
	main/courses/course_materials.py
	main/templates/additional_pages/ready/additional_page_list_item.html
	main/templates/files/ready/file_list_item.html
	main/templates/problemsets/ready/problemset_list_item.html
	main/templates/videos/ready/video_list_item.html
Merge pull request #1450 from Stanford-Online/jrbl-1291-child_items_ui

Jrbl 1291 child items ui