As discussed in #816, here's the linting subsystem rebuilt:
- Added `eslint` to the `devDependencies`.
- Configured `.eslintrc.json` to enforce our coding style.
- Swapped out `semistandard`, as `eslint` does the same job that it did.
- Updated `lint.js` to use `eslint` (some rules are overriden there in order to deal with all the problematic data that comes from generated files).
- Made `eslint` `--fix` errors on its own in the `linter` process and give us a report (that does not seem to auto-commit from CI builds, that's probably for the best).
- Run the new `linter` on pretty much everything, some rules are now better applied across the board.
**Only thing remaining** is to configure Codacy to use this ruleset from now on and we are golden.
## PR Type
- [ ] Snippets, Tests & Tags (new snippets, updated snippets, re-tagging of snippets, added/updated tests)
- [x] Scripts & Website & Meta (anything related to files in the [scripts folder](https://github.com/30-seconds/30-seconds-of-code/tree/master/scripts), how the repository's automated procedures work and the website)
- [ ] Glossary & Secondary Features (anything related to the glossary, such as new or updated terms or other secondary features)
- [ ] General, Typos, Misc. & Meta (everything else, typos, general stuff and meta files in the repository - e.g. the issue template)
## Guidelines
- [x] I have read the guidelines in the [CONTRIBUTING](https://github.com/30-seconds/30-seconds-of-code/blob/master/CONTRIBUTING.md) document.
- [x] My PR doesn't include any `testlog` changes.