Fixed detail file handler to not go crazy
In short, the detail timer events are now inserted with a
saved fr_event_t. This allows *existing* timer events to be deleted
when a new one is added. The previous code would *add* timer events
on top of the existing ones, causing geometric increases in the
number of polls per second.
Also, re-arranged the detail && listener code so that there's only
one location where the timer gets inserted, and only one location
where the delays get propogated from the detail to the event handlers