srm: Minimize use of AuthorizationRecord

AuthorizationRecord is a legacy class from before gPlazma 2 existed.
Since the introduction of gPlazma 2, we have tried to use Subject
to represent users everywhere in dCache. SRM is the last component
in which this was not the case. This patch addresses this inconsistency.

AuthorizationRecord is not removed completely as the SRM relies
on storing the user identity in the database together with user
requests. To maintain this functionality and preserve backwards
compatibility, AuthorizationRecord is still used for this purpose.

The SRM itself uses the SRMUser interface to abstract from the
exact representation of a user. This patch introduces the DcacheUser
class, which wraps a Subject to expose it as an SRMUser. The
dCache specific SRM backend is updated to extract the Subject
directly from DcacheUser. DcacheUserPersistenceManager acts as a
bridge to persist and load DcacheUser instances to and from the
database. Internally, DcacheUserPersistenceManager however simply
interfaces with the legacy AuthRecordPersistenceManager. This is
the only place the legacy AuthorizationRecord class is used.

The custom authorization caching of the SRM has been replaced by
a CachingLoginStrategy.

The wiring related to the above classes has been moved into the
Spring XML file.

The only admin visible change is that the output format of the SRM
ls admin commands has changed slightly. It now shows a list of
principals as an identification of the request owner. If output
of these commands is used in the book, the book must be updated.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Patch: http://rb.dcache.org/r/5691/