Fix watch operations to be thread safe

Add R/W locks so that the updates on the cluster leader don't cause race conditions when multiple ```Watch``` are done simultaneously.