srm: Replace pin and unpin callbacks with ListenableFuture

This replaces some of the bulky callback interfaces in the SRM with
Guava's ListenableFuture. The same approach was used for the recently
introduced prepareToPut method.

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