Ports changes to models and model tests along with some settings changes...

... from feature/tracks_activation
A rename would be fine; I'll do it downstream.

This data getting out of sync with the course enrollment isn't really a problem.  If a student enrolled in the course is dropped from the course, then the object persists but doesn't continue to interact with anything.  If a new student is added, the Student object is created on demand, since we don't assume student objects exist.  There are a lot of resources we have that can get out of sync with Canvas; I've been designing around having the out-of-sync not matter rather than trying to maintain synchronization (cron would probably introduce more problems than it would fix here).