pool: Rewrite checksum module

- Introduces an interface for checksum module.

- Removes name space chatter from checksum module (thus
  allowing checksum reads and checksum updates to be
  combined with other operations). This eliminates some round
  trips between pool and name space.

- ReplicaDescriptor is extended with methods to fetch and
  store checksums. Most ChecksumModule methods operate on
  a ReplicaDescriptor rather than a file.

- Changes the unused FILESIZE_MISMATCH CacheException to
  FILE_CORRUPTED and introduces the FileCorruptedCacheException
  class. It is used to signal both checksum and file size
  mismatch errors.

- The new code works with collections of checksums in most places (the
  mover interface has not been updated for this yet).

- The new code looks at known checksums to decide which checksum
  to compute (rather than always defaulting to ADLER32 and hoping
  that's the checksum we had before).

  This last point is user visible, as we now may compute and verify
  different checksum types from before.

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