Mark duplicates for name sorted files.

This is an implementation of an alterative method of marking
duplicates using a hash table of positions and orientations.

Signed-off-by: Martin O. Pollard <mp15@sanger.ac.uk>
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>
Combine coord and name sorted mkdup

Combine the coordinate sorted and name sorted mark duplicates commands.
When the mkdup command is called it will autodetect the sort order from
the @HD.

Signed-off-by: Martin O. Pollard <mp15@sanger.ac.uk>
Temporary save my work on new index commit

[ci skip]
Separate out position buffer into separate file and document.