Adding editability to training cohorts

This code is modeled on @rbeagrie's addition of editable events.
This is my fault, but this way of enforcing permissions is the most granular that is possible with the default django model. It would be quite a bit of additional work to code and test permissions at this level of granularity (i.e. really checking that the current user has edit/create permissions for this specific class of object, as opposed to e.g. just checking that the user is logged in, or the user has "admin" status). In retrospect I think it would be better to remove this logic about permissions and open a separate issue about exactly how to handle these issues. If you agree with that then I'm happy to checkout your branch and make the edits if you can wait until tomorrow afternoon (I'll also take out the matching code from my PR which added a form for sites).