Add JSON output

* Add --json flag to testimony command for JSON output
* Create a Result class to hold the result info for each PATH
* Logic refactor to process the docstrings and then print the results
* Update report type constants to a more verbose constant name
* Fix a bug to process all PATHS before exiting with return code -1