Command line interface modifications

Tweaking how the command line arguments are parsed. Making use of the `argparse` module within the Python stlib. Currently have two commands defined: `parse` and `validate`. This new setup will allow us to easily expand the command line interface in the future. 

Also modified a few things regarding how arguments are passed to functions, especially when it comes to parsing the config file. Future iterations will likely move to using a named tuple structure for the config arguments. 

**Note:** *The original program gave precedence to the input and output files defined in the config file. This iteration pretty much ignores those files defined in the config file and only considers the files defined by the command line interface.*