Rewrite report.py to use json files

Replaces the awful directory structures
Refactor to remove extra logic

Makes it more simple by leveraging features I built in earlier.
Override parent class function for efficiency

The base class's set_key_list is really just a loop calling set_key.
This makes the changes one large session and merge
transaction as opposed to many separate ones