OEC-360, avoid duplicates when folding in cross-listed courses

After the get_courses query we get cross-listings with additional queries. Lo and behold, the final list has duplicates. It's not feasible to identify dupes by inspecting the file so we maintain a visited_row_list and perform performance dampening lookups. But a performance hit is OK.
@johncrossman , since you're using this as a set rather than an array, why not just declare it as a Set.new?