Begin creation of Evaluator class, to reorganize the program

- This class should be able to better encapsulate many of the program functions
  previously dealt with in the main file.
- Having a class will likely be a better solution than passing the
  ProgramOptions struct around to so many functions
- It will also then be easier to add new functionality, separate concerns, and
  shorten files and code