fix deadlock condition that can exist in the coordinator

2 LoadQueuePeons refer to each other via executeCallbacks(), when this happens at the same time, coordinator deadlocks.

```
"Master-PeonExec--0" daemon prio=10 tid=0x0000000000f68c70 nid=0x4aac waiting for monitor entry [0x0000000040e0a000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at io.druid.server.coordinator.LoadQueuePeon.dropSegment(LoadQueuePeon.java:188)
    - waiting to lock <____0x00000007c647fbb8____> (a java.lang.Object)
    at io.druid.server.coordinator.DruidCoordinator$1.execute(DruidCoordinator.java:333)
    at io.druid.server.coordinator.LoadQueuePeon$SegmentHolder.executeCallbacks(LoadQueuePeon.java:455)
    - locked <0x0000000799747ce0> (a java.util.ArrayList)
    at io.druid.server.coordinator.LoadQueuePeon.actionCompleted(LoadQueuePeon.java:331)
    at io.druid.server.coordinator.LoadQueuePeon.entryRemoved(LoadQueuePeon.java:377)
    - locked <0x00000007c4570f18> (a java.lang.Object)
    at io.druid.server.coordinator.LoadQueuePeon.access$1200(LoadQueuePeon.java:54)
    at io.druid.server.coordinator.LoadQueuePeon$4.run(LoadQueuePeon.java:299)
    - locked <____0x00000007c4570f18____> (a java.lang.Object)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

"main-EventThread" daemon prio=10 tid=0x0000000000b82b80 nid=0x4ca9 waiting for monitor entry [0x000000004154a000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at io.druid.server.coordinator.LoadQueuePeon.dropSegment(LoadQueuePeon.java:188)
    - waiting to lock <____0x00000007c4570f18____> (a java.lang.Object)
    at io.druid.server.coordinator.DruidCoordinator$1.execute(DruidCoordinator.java:333)
    at io.druid.server.coordinator.LoadQueuePeon$SegmentHolder.executeCallbacks(LoadQueuePeon.java:455)
    - locked <0x000000079974d2f0> (a java.util.ArrayList)
    at io.druid.server.coordinator.LoadQueuePeon.actionCompleted(LoadQueuePeon.java:331)
    at io.druid.server.coordinator.LoadQueuePeon.entryRemoved(LoadQueuePeon.java:377)
    - locked <____0x00000007c647fbb8____> (a java.lang.Object)
    at io.druid.server.coordinator.LoadQueuePeon.access$1200(LoadQueuePeon.java:54)
    at io.druid.server.coordinator.LoadQueuePeon$4$2.process(LoadQueuePeon.java:275)
    at org.apache.curator.framework.imps.NamespaceWatcher.process(NamespaceWatcher.java:56)
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519)
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495)
```