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

... from feature/tracks_activation
Is this test checking that the course settings are created on demand when you call set_finalized? I'm not clear on how finalizing a course that doesn't exist yet wouldn't be an error. Maybe this goes back to the earlier question of why not just create the course on the first LTI launch so that you can depend on its existence as an invariant.