Allow repeated setup and teardown of communications without JVM restart

This fixes https://github.com/cryptobiu/scapi/issues/41.

 * Interrupt threads from `CommunicationSetup` in `timeoutOccured`
 * Close `ServerSocketChannel` from `ListeningThread` when interrupted using try...finally block