Refactor argument parsing to use argparse.

When I had initially written the argument parsing code for bugging-out,
I thought that getopt was the 'preferred' idiomatic way to parse
arguments in python.

However, an argparse-based implemention produces much more concise code.

This revamp also removes the argument parsing unit tests.  Previously,
when the getopt was used under the hood, a whole slieu of custom logic
was needed to enfoce constraints such as non-negative integers, files
that exist, required arguments, etc.  It made sense at the time to unit
test this code, since it wasn't part of an already tested library.
However, with the move to argparse, this code is no longer needed as
argparse supports most of this constraint checking natively.  This
makes the tests not useful either, so they were removed.

Issue: #12