Update neighbors implemented with threads.

Still problem exists when one node leaves and another arrives, the new
node throws an exception since it gets the lookup of the just left node
but it is really not there.