initial models

laying out the foundation

Notable changes: 
- renamed `Course` to `Subject`
- Using polymorphic associations instead of STI.