test,tools: catch option parsing exceptions

Catch the boost::program_options errors and exit with a human readable
error message. In some cases some errors were caught and a usage
displayed but with no indication about the error. This is replaced by an
error message without the usage. Displaying the usage after an error
often obscure it because it shows as a single line at the top of the
usage.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>