refactor(logger): add a logger to handle all printing and writing to stdout

@hankduan could you take a look? Doing this as the basis for having different logging options (e.g. warn, output only if in troubleshooting mode).
you wouldn't be able to use the logger for `config.resultJsonFiles` since the logger is too generic (the json files only wants a subset of the results). I'm okay with just using `set` or `configure` too