srm: Fix race condition in listing

The ListDirectoryHandler only worked if replies arrived in sequence
and sequentially. For singe threaded cells this worked fine, however
srm now uses multithreaded message delivery and thus listing broke.

The fix updates the handler to deal with concurrent and out of order
reply delivery.

Target: trunk
Request: 2.9
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6946/
(cherry picked from commit 942035ad08e781006a7fa87201ab35f3eba7d502)