Fixed interrupt and bogus filter bugs for dag:

trace_interrupt now works correctly for dag: when using both
trace_read_packet() and trace_event().

Stopped trace_read_packet from consuming vast quantities of CPU
when blocking waiting for a packet -- now libdag handles the waiting
for us.

Supplying an invalid filter will now cause an error to be reported rather
than accepting the first packet.