Comment moderation backend

This includes the flag/unflag endpoints for use by the plot detail page as well as the moderation endpoints for hiding, archiving, and flag clearing.

I chose to create an EnhancedThreadedCommentFlag model because the built-in CommentFlag does not support hiding, and I though having our doubly-inherited comment model link back to another inherited model would be too confusing, or perhaps impossible

I changed the base comment moderation endpoint because I made endpoints for flag and unflag and these look most natural as:

    POST /{instance}/comments/{comment_id}/flag/
    POST /{instance}/comments/{comment_id}/unflag/
If I'm understanding this correctly, if a user flags, unflags, and then reflags a comment, there will be 2 `EnhancedThreadedCommentFlag`?

Thats probably the right thing to do, but it is not the most intuitive setup.  Consider adding a unit test that documents this.