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

... from feature/tracks_activation
@bermudezjd We actually need the state of course (i.e. tracks are finalized) to persist. Also, the CourseSetting makes it easy to add other course-wide states/settings down the line.