Change the names of some models

* `Course` -> `Subject`, `Lecture` -> `Course`.
* According to this, names of some variables, functions, and classes are
  changed, too.
Remove property `name` from `Course` class

* Property `name` is not defined in `CatalogEntity` class anymore, and
  this property of other classes that inherit from this class is now
  defined in each class.
Change the behavior of `CourseFactory` class

* No `CourseHour` object will be created when `CourseFactory` is called
  without keyword argument named `hours`.
Add fixtures for catalog entity objects
Set scopes for some test fixtures to `function`

* See #1 for details.