course and enrolment models

this depends on #19

1. new course model

2. course user relation model: enrolment
because of the implicit dependency.

if you do not need to persist to db, use `build` since that doesn't give a database query.