[ci skip] passing 2 of 3 tests for `CreateCtrl`

* I added `$q` and `MajorInfo` as new dependencies for `CreateCtrl` controller.
* I added a function that adds a class object to class cart of scope.
* I added a function that converts the class cart of `storedContext` into the class cart to expose to scope.
* I added a private variable `storedClassCart` to save the class cart data in form of the class cart of `storedContext`.
* I added `search` function to `$scope` which searches the classes with keyword `$scope.keyword`.
* I modified the test data for the unit test of `CreateCtrl` controller.
* I fixed the injected services to work correctly.

    * Now the success callbacks in `Class` service are called asynchronously.

* I changed the spec 'should store context data' to 'should delete a class entity from class cart and store the class cart into cookie'.

    * Now the spec has been changed to manipulate `scope.classCart` and `storedClassCart` directly rather than to `$watch(scope.classCart)`.