20178: Simpler logic for overlaps

So basically I've changed the logic we use to detect and remove overlaps and duplicates. Now it's dead simple:
- There's a gap in between broadcasts -> add an empty broadcast
- The current broadcast overlaps the previous one -> ignore it

So, currently if we have:
```01:00 -> 02:00
01:30 -> 02:30
02:00 -> 03:00
```
We end up with a single erroneous block:
``` 
01:00 -> 03:00
```
Whereas with the new solution we'd have:
```
01:00 -> 02:00
02:00 -> 03:00
```

https://jira.dev.bbc.co.uk/browse/IPLAYER-20178