19622: Check for duplicates and overlaps in the schedules feed

Background

So far the feeds we got from dynamite had no duplicated broadcasts or overlaps, that's not the case with the iBL feeds since the nitro information has this issue. This is something being worked on Nitro. In the meantime, we need to make sure that our feeds are free of duplicates or overlaps.

I've separated the logic in 2 functions since it's a bit of a pain to keep track of which ones you've deleted in case you have an overlap and a duplicate at the same time.

The testing approach is very end-to-end, using a fixture. I could've made the `fix*` functions public and test'em with an array of `Broadcasts`, but I think this is simpler. If you want to add more cases to the tests, please suggest them.

https://jira.dev.bbc.co.uk/browse/IPLAYER-19622
Responsive Web's ScheduleModel might be of interest here. (around line 344), as that's the logic we're using to de-dupe iffy Dynamite data. You'll probably end up having to check you don't have a programme in the middle of another one.