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

... from feature/tracks_activation
The reason we built it this way is because while tracks and stages are technically many-to-many, it's a special case because we want a StageUrl for every track in the course.  Happy to use the ManyToMany manager, but I don't think it saves any logic.