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.
Merge pull request #23 from zhentao/master

The code change is to make it easy to extend DatagramEventListener and DatagramEnqueuer.  It doesn't add new functionalities.