made following changes:
1. made ThreadedEventListener generic, and change enqueuer and dequeuer to be protected
2. DatagramEventListener reuses enqueuer and dequeuer from parent class
3. changed some fields in DatagramEnqueuer to be protected so it can be extended easily.