Work on the testing framework

- Replaced the old optparse functionality of argument parser with the newer
  argparse

- Changed the way arguments are passed

- Added a --fail-fast argument to denote that the tests should all stop at a fail

- Stylistic changes