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.