Mark duplicates for coordinate sorted files

This is a new implementation of mark duplicates for coordinate sorted
files. It uses several hash tables, in a two pass configuration to do
this. A name hash is used to store the information about the first
read, and then a position hash is used to store colliding reads.
Finally a kill hash is used to pass this to the next phase.

Signed-off-by: Martin O. Pollard <mp15@sanger.ac.uk>