UI Changes for static page parent setting

* UI changes necessary to be able to set the ContentGroup for a static
  page from its edit screen, rather than only at page creation time.
* This has bearing on correction of #1559.
* This branch should be revisited when #1458 is addressed.
* Todo: plumbing to edit ContentGroup entries when changes are made
Back-end support for editing static page parents

* (closes #1482)
* Also back-end support for #1458, but javascript item filtering still
  present.
* Known issues: moving a parent to be a child of another parent makes
  the moved parent's children invisible.
ContentGroup convenience methods
ContentGroup.add_child does corner cases bettter

* More careful handling of case where parents get reassigned to be
  children of other parents.
* Give up Try/except in favor of using a data structure and if/else
  (should be faster)
* (closes #1482)
AdditionalPages javascript updates

* Ban on other types being ContentGroup parents to AdditionalPages
  partially lifted.
  (closes: #1458)
Docstring fix for ContentGroupManager.getByFieldnameAndId
Factor out ContentGroup manipulations

* Pull ContentGroup manipulations out of the various create and edit
  dialogs and put them into a callable function.
  (fixes #1603)
Child static pages display in list style

* Child static pages default to list-style display
* Non-file child items in button-style display have their title
  attribute as button text, rather than their item type.
  (fixes #1604)
Bugfix to exam editing parent/child assignment

* In refactoring parent/child assignment code, exam editing code was
  broken. This fixes.
Merge pull request #1587 from Stanford-Online/jrbl-1482-parent-assignment-static-page-edits

Jrbl 1482 parent assignment static page edits
Address repetitive feedback described in #1714

Also add some comments in prep for refactoring code

	modified:   templates/exams/view_exam.html
Merge branch 'master' of https://github.com/Stanford-Online/class2go into wescott-master-exercise-work