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