Add `TimetableCreater` service.

* This service depends on `$q`, `config`, and `Class`.
* This service provides a method named `createTimetablesFrom`.

    * This method accepts two parameters: `classCart` and `options`.
      `classCart` is an instance of `ClassCart` class.
      `options` is an object that includes four optional options for
      creating timetable:

        * `excludedPeriods` is an array of periods that no classes
          can be placed on.
        * `creditRange` is an object that includes two properties:
          `min` is the mininum total credits of timetables which can
          be created, and `max` is the maximum total credits of them.
        * `nClassDays` is an array of numbers which can be the number
          of class days of timetables which can be created.
        * `nMaxClassesPerDay` is a number which is the maximum number
          of classes of each day in timetables which can be created.

    * This method returns a promise that resolves an array of
      timetables created.