Update BIN values in 'samtools depad'

By its nature, 'samtools depad' edits mapped reads, altering both
the mapping position and CIGAR string. This means the mapped start
and end can change, and therefore the BIN can change.

Prior to this fix the pre-editing BIN (from the padded reference)
was being written to the BAM output, leading to subtle problems
downstream when trying to use the depadded BAM file via the BAI
index. For example, in Picard v1.89 this could trigger an
java.lang.ArrayIndexOutOfBoundsException where an old BIN was
outside the length of the unpadded reference sequence.
Verify old BIN value of reads during 'samtools index'.

This simple check catches invalid BIN values in reads which can cause
subtle bugs due to position-based retrieval missing data, and simple
out of bounds errors if a BIN is used beyond the length of the reference.
Update 'samtools depad' help text regarding FASTA reference file
Should update POS on unmapped reads in 'samtools depad'

Previously unmapped reads with a POS entry (e.g. those reads with
a mate which was mapped) were not being updated.

This has passed my testing with some non-trivial de novo MIRA 3.9
assemblies, coupled with the new 'samtools index' BIN verification.
Slightly more detailed error message for debugging.

It would be nice to include the RNAME, but currently the header
is being discarded before parsing.
Merge pull request #43 from peterjc/depad_bins

Update BIN values in 'samtools depad' & check in 'samtools index'
Show reference name in bad BIN error message
Correct BIN check for CIGAR less reads

This should mimic the logic in the import code. Any such reads
should also be unmapped.
Merge pull request #44 from peterjc/check_bins

Update 'samtools index' BIN verification code
Merge remote branch 'origin/master' into develop