Revert "Synchronize listeners"

This reverts commit 37575e19c1e87d15765886ca923d051286c498c6.
Synchronize listeners

Currently listeners list is not synchronized. That means that removing
listener in receive handler causes ConcurrentModificationException to be
thrown.

Java's synchronized blocks are reetrant, so it wasn't possible to
unsubscribe from handler. This patch uses CopyOnWriteArrayList that
makes it possible to remove listeners while iterating over a list.
Merge pull request #13 from rasendubi/synchronize_listeners2

Synchronize listeners