WIP: 0-option criteria (API changes)

Work in progress for 0-option criteria.  This includes the changes from https://github.com/edx/edx-ora2/pull/462 which have not yet been merged.

At this point, I think the API changes are mostly complete, but there are some more integration tests I want to add (for example, data download and student training).

Still to-do (probably as a separate PR):
1) Implement "required" feedback (XML, JavaScript, and Django template changes)
2) Update templates to support 0-option criteria (small things mostly, like not displaying the criteria for self-assessment and student training)
3) XML validation rules (0-criteria options need to have feedback="required", can't use with example-based grading, etc).

Testing we will need to do:
1) Functional: complete all assessment types in a sandbox with rubrics that have 0-option criteria.
2) Performance: re-run perf tests to make sure we're not increasing the number of database queries.
3) Roll forward / roll back: make sure the schema and data migrations are safe.

Analytics changes:
The event format for peer/self assessment changes slightly with this PR:
* Add a "criterion" field to the event for each assessment part
* "option" field can now be None (before it was always a dictionary)

@stephensanchez