xrootd: Add support for kXR_locate, kXR_query and kXR_set

kXR_locate always returns the door or pool itself, no matter whether the file
exists or not. This avoids an extra name space lookup. It is unknown whether
the argument to kXR_locate contains the opaque information, thus whether the
pool can rely on the uuid being present.

kXR_set is only implemented for appid.

kXR_query is implement for kXR_Qconfig and kXR_Qcksum. In pools we again have
the issue that the spec doesn't define whether the path contains the opaque
info.  The patch speculatively looks for the uuid and returns the checksum if
found - otherwise the client is redirected to the door.

The behaviour on kXR_open is altered slightly to return clients with missing
uuid or invalid uuid back to the door rather than return an authorization
error. The client likely just uses an outdated uuid or wants to open a second
file.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6565/