srm: Rewrite srmPutDone implementation

Addresses spec compliance issues.

Note that the SRM spec states that a list of SURLs is required
for srmPutDone. Therefore a lot of dead code for the case of
an empty SURL list has been removed.

A lot of duplicated dead code for non-put requests has been
removed.

The new implementation supports several return codes unused by
the old implementation.

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