srm: Use shared read locks for read-only property access

I verified all places in which we obtain a read-lock. As far as
I could see, we now never upgrade a read lock to a write lock.
Thus it is safe to use a shared read lock for read access.

I had to fix a number of getters, though. In particular turl
computation was done as a side-effect in a getter and would
thus cause a read-lock to write-lock upgrade attempt during
save. I now moved the turl computation into the main processing
of put and get. Note that this causes the turl to be computed
as the request moved to RQUEUD rather than READY. If this is
unacceptable, we could move the computation into the
stateChanged notification, but I find that slightly more
messy.

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>
Patch: http://rb.dcache.org/r/6157/