Refined stub code for class searching

Added optional fields to ClassDetailsStub for campus and term, plus a
convenience method to clone an existing instance. CourseStub has more
accurate code for searching and returning classes based on the campus
search term.