Adds tests for usage message for samtools and all subcommands

Parses usage output into sections and looks for usage, version, and commands sections
using regexes.

Dispatches a further usage test for each subcommand reported by `samtools`

Verifies that subcommand usage lines mention `samtools subcommand` where subcommand
is the name of the subcommand (this test is not run if the regex 'not.*implemented'
is found anywhere in the subcommand output -- it seems reasonable enough that not
yet implemented subcommands would not have usage messages)

N.B. this currently fails on 4 subcommands - these need fixing and these
tests should tell us when they are fixed.
Modifies test.pl so that it exits with non-zero status if any tests fail.
Fail when tests fail

Exit statuses are really 8-bit unsigned integers, so exit with 0/1
rather than the number of failures in case we have lots of tests, and
return a less unusual status from the usage display: 1 rather than 255.

Merge branch bugfix/test-pl-no-exit-code-on-fail of github.com/wtsi-hgi/samtools
stats: Fix of mismmatch-per-cycle calculation in presence of hard-clipped reads
Usage message tweaks to satisfy test/test.pl's test_usage()

Idxstats is currently disabled, but re-enable its basic functionality
including usage.  The calmd/fillmd command is canonically calmd.
Fix bamshuf and faidx messages.  Tview has been disabled in bamtk.c
for a while; also suppress it in samtools --help command listing.
Fix control of compression level in bam_merge_core. The setting was ineffective due to a minor copy/paste error.