CYB-230  Refactor the Comments API

* code is far safer (handles bad input better)
* now scores when a comment is posted (subject to comment scoring being turned on -- still creates
   the entry but marks it as not scoring, as per other scoring cases)
* Far better spec coverage

[CYB-230 Refactor the Comments API](https://jira.ets.berkeley.edu/jira/browse/CYB-230)