[PVR] Timeslot of EPG program

Hi,

- In FixOverlappingEvents(), start time of EPG program from PVR client could be expanded to fill the gap until the previous program. It is a big problem for the PVR client when a new timer is created from EPG. We cannot match the new timer with client EPG database. Often the start time of slot is use to identify the program. Also it is the only way to check the timer has been created from the program guide. Only overlapping events should be updated to avoid conflict situation. The gap between program slots don't break anything in the PVR code.
So here i remove timeslot updates when there is not overlapping and cut previous end time instead current start time when previous end time overlaps the current. With these changes EPG program keep the same start time along the flow: from the client, throw PVR and finally to the client when creating the timer.

- In GetTagAround() when previous program had no gap with current program (p.endTime == c.startTime) the previous was returned instead the current begins around. So here time should be strickly less.