Changes api interface to use failure block
Modifies CourseCollection and CourseSearch to use failure block
Remove CourseSearchProtocl and CourseCollectionProtocol and combines methods to single protocol
Adds some more commenting for CourseStatement
modifies interface of fetch method for CourseCollection
Implements Course tests
Fixes bug with CourseStatement
Implements CourseSearch and CourseCollection methods
Adds addCourse: method to courseCollection
CourseCollection implementation in terms of addCourses: method
Adds courseEquality comparison
Implements test for CourseSearch