exam_feedback endpoint modeled after interactive_exercise (#1449)

Not tested yet, need to merge first.
Merge branch 'master' of github.com:Stanford-Online/class2go into sef-1449-grader

Conflicts:
	main/urls.py
Pass all data- elements as params for interactive exercises (#1620)
store invideo exam results back, wrong fmt (#1449)

The format of the json_data and json_score_data still aren't correct
Merge branch 'master' of github.com:Stanford-Online/class2go into sef-1449-grader
in video exercises: scoring feedback, hide button (#1449)
Merge branch 'master' of github.com:Stanford-Online/class2go into sef-1449-grader
Interactive ex: log attempts to ExamRecordFieldLog (#1449)
Unify feedback endpoint; store log & net score; interactive autograder

- Moves the logic for communicating with the db-class interactive grader
  into the autograder.  Fixes #1569.
- Allows both interactive exercises and invideo quizzes to now use one
  feedback endpoint
- Feedback endpoint no longer uses non-standard query parameter.
- Correctly store log of interactive attempts and net scores for both
  interactive exercise and in-video quizzes.  Fixes #1449.
- Moved most of the settings to drive interactive exercises from HTML
  into the XML section.  This is both more reliable and secure.  Also
  more flexible.  Fixes #1620.
Removing spurrious "exam.slug=empty"

Not sure how this maded it in, but it was a mistake, removing
Interactive: examrecord a running score, not one-time (#1449)

Instead of setting the score to the last score, adjust the examrecord
score by the current value.  This could be the wrong behavior if someone
answers the same question wrong twice with the same wrong answer, for
example.  Should they be penalized twice?  Using this scorer, they will.

Also added some docstrings and formatting cleanups while I was in there.
exams/views.py: tabs to spaces
Error reporting from grader; GRADER_ENDPOINT now an endpoint, not hostname (#1449)
interactve update_score: score=0.0 on new row (#1449)
example env file to show correct grader endpoint fmt (#1449)
fix URLerror message -- wrong arguments (#1449)
Add docstring for interacte autograder (#1449)
qualify exceptions in update_score() (#1449)
update_score: get_or_create(), find prior records correctly (#1449)
exam_feedback: correct if score==maxscore, not score==1 (#1449)

Per @jbau feedback on review, since the old grader can have a max of
something besides 1, we should use that to determine correctness.