Re-arrange the initialization of libusb.

Avoid setting up libusb until after arguments are processed.  This
allows us to exit without having to clean anything up, and prepares us
for the next commit: to exit cleanly when `parse_arguments()` has
already done the work.
Don't exit with an error for usage and version options.

Previously, `dfu-programmer --version` would exit with an error code of
1, along with `--targets`, `--targets-tex`, `--targets-html`, and
`--help`.  This is a bit misleading.  Instead, let's report back to the
top-level that everything has been handled by returning a positive
number, and having the top-level detect this and exit successfully.