Switch to Listen 2.0 Gem Support

New Gem, New interface.
Update Listener Sleep Loop

Use thread join to wait for the listener thread to exit. Also ensure that the
interrrupt signal is not itercepted as this causes problems when you try to
exit.