Provide a single thread for each event tap flow

In order to avoid contention between multiple taps for the same event
type, provide a queue and thread for each EventTapFlow object.