We should refactor this code (maybe after opaque-keys?).  `create_course` already checks for existence of a course and raises `InvalidLocationError`.  So we should just call `create_course` (with the ignore_case parameter) and handle the exception.  Should we put a TODO statement here to remind us?