Remove associated user_schedule_items when removing user_course

I noticed that when we remove a `UserCourse` from the course history we don't remove the associated `UserScheduleItem`s from the calendar. This PR addresses that. There's two reasons why I think doing this is a good idea:
- Consistency between the course history and calendar views.
- Privacy concerns. When a user removes a course from their course history, it might be because he doesn't want other people to know he's taking the course. However, others could still find that he's taking the course by looking at the calendar.

We might also want to fix this for existing inconsistencies. However, I don't think it's a big issue unless we get complaints about it. Still, I've filed issue #195 to track it.

### Testing ###

- Tested removing a user course before this PR and checked the course shows in the calendar
- Tested removing a user course after this PR and checked the course doesn't show in the calendar
This would delete all matching (multiple) elements, right?

One concern I have is that Line 1003 above searches for the UserCourse and then takes the first one. I know that we're keying UserCourses on `user_id`, `course_id`, and `term_id` so this shouldn't matter. But should we use `first()` here as well to be consistent just incase this changes in the future?

I'm completely fine with leaving this as is; I just want to hear your opinion on this.