Will/grady/self assessment feedback

@wedaly , we should talk about the Test changes and the changes to models/base.py
Since `missing_criteria` is a `set`, this message will be a little clunky (I think it prints the `repr` of the set).  Maybe convert it to a list and do `", ".join()` instead?