Fixed #20: Created preprocessor class, modified Course

The ConflictPreprocessor class is now written. Note that the preprocess() method is static, so it should be called as such.

As per my email, I also changed the Course object. The STL container that holds the ID's of conflicting courses, is now a set<string> instead of a vector<string>, so that inserting duplicate ID's has no effect. This change makes insertion an O(logN) operation, but it's still better than searching through a vector (at O(N) efficiency) to make sure the ID doesn't already exist.