cells: Fix race conditions in cell lookup

When cells are killed, they are moved from one map to another map. This operation
is not atomic and methods that look in both places need to be synchronized.

This addresses a null pointer exception experienced in the DCAP door:

java.lang.NullPointerException: null
        at diskCacheV111.doors.DCapDoorInterpreterV3.ac_get_door_info(DCapDoorInterpreterV3.java:733) ~[dcache-dcap-2.2.13.jar:2.2.13]
        at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_19]
        at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_19]
        at dmg.util.CommandInterpreter.execute(CommandInterpreter.java:609) ~[cells-2.2.13.jar:2.2.13]
        at dmg.util.CommandInterpreter.command(CommandInterpreter.java:486) ~[cells-2.2.13.jar:2.2.13]
        at dmg.cells.nucleus.CellAdapter.executeLocalCommand(CellAdapter.java:1020) ~[cells-2.2.13.jar:2.2.13]
        at dmg.cells.nucleus.CellAdapter.messageArrived(CellAdapter.java:940) ~[cells-2.2.13.jar:2.2.13]
        at dmg.cells.nucleus.CellNucleus$DeliverMessageTask.innerRun(CellNucleus.java:1051) ~[cells-2.2.13.jar:2.2.13]
        at dmg.cells.nucleus.CellNucleus$AbstractNucleusTask.run(CellNucleus.java:949) ~[cells-2.2.13.jar:2.2.13]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_19]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_19]
        at dmg.cells.nucleus.CellNucleus$1.run(CellNucleus.java:654) [cells-2.2.13.jar:2.2.13]
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_19]

Target: trunk
Request: 2.6
Request: 2.2
Ticket: http://rt.dcache.org/Ticket/Display.html?id=7896
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5700/