DHT Locking

Grab a RLock object on running any method of a DHT object.

The lock is an RLock, so nested locks don't cause deadlocks.

The lock object had to be made public, since in connection.py, inCryptoPeerConnection.cb()  there is a piece of code that works with dht.activePeers().