New output format: JSON

Since text, html and yaml formatter are already supporter, this PR adds a new format: JSON

PR summary:

- Refactors `output` method on analyzer
- Adds a new runtime gem dependency: `json`
- Adds a new supported output format: `json` with tests

@flyerhzm let me know what you think.