Implementing NYT's ICE track changes to Open Ended Assessements

@VikParuchuri  This is a modified and reworked version of https://github.com/edx/edx-platform/pull/956 that addresses all your comments on that PR.

Still short a test, but will add that today.  But please take a look at this if you happen upon it with or without the test

Thanks,
Jason


Squashed commits to facilitate cherry-picking.  Committers and
original commit messages are:
- ==> @caesar2164, * ==> @jrbl, ~ ==> @jbau

- Added boolean to OE problem CMS settings to turn on ICE track changes
- Added ICE init and tracking start/stop to HTML
- Conditional in Peer Grading HTML for ICE container
- CSS styling for ICE container and insertion/deletion elements
- Added class to track changes HTML
- Added ice.min.js as well as included it in the js requirements for peer grading
- Use track_changes in peer_grading_problem
* Refactor peer_grading_problem to lookup track_changes variable by problem location.
* Whitelist ICE insert, delete tags
* Adds ICE multi-user-editor insert and delete tags to the peer grading sanitize_html whitelist.
- add reset button

- Filter most HTML from peer grading feedback

* Introduction ICE means we need its inline tags to get passed through
  to the feedback target, but we don't want malicious peer feedback
  providers introducing <script>, etc, so we use lxml.html.clean to
  scrub peer grading input.
* Adds feedback URL autoheating.
* Allows ICE <insert> and <delete> tags but not others.

~ add helptext re: EXPERIMENTAL FEATURES

~ address a bunch of @VikParuchuri review comments on ICE for OEE
  ~ remove extraneous code
  ~ change to new xmodule accessors
  ~ refactor filtering

~ fix broken test test_peer_grading_problem

~ Create track_changes.coffee and remove <script> from
  peer_grading_problem.html
~ Remove all reliance on id in favor of local scoping and classes