Added CMake testing infrastructure

- Mostly fixes #9
- Validates input and output json files
- Detects some errors in the unit tests
- Checks for regressions in the output files
- Does not validate json in stdout, or check that all the output to stdout is correct
- Does not check for memmory issues
- GFortran fails tests, likely due to differences with ifort '*' editing