Breaking: convert CLIEngine to ES6 class (refs #8231) (#8262)
Breaking: convert CLIEngine to ES6 class (refs #8231) (#8262)

This converts CLIEngine to an ES6 class. This will not break clients that were using CLIEngine as documented, but it could break clients that are relying on undocumented behavior in CLIEngine (e.g. enumerable methods).
kentcdodds/eslint,ABaldwinHunter/eslint,gabro/eslint,SimenB/eslint,AcceptableIce/eslint,Trott/eslint,onurtemizkan/eslint,onurtemizkan/eslint,Moeriki/eslint,brgibson/eslint,SimenB/eslint,whitneyit/eslint,eslint/eslint,mzgol/eslint,menelaos/eslint-solarized,ljharb/eslint,pvamshi/eslint,AcceptableIce/eslint,whitneyit/eslint,gabro/eslint,eslint/eslint,scriptdaemon/eslint,Gillespie59/eslint,menelaos/eslint-solarized,DavidAnson/eslint,platinumazure/eslint,Aladdin-ADD/eslint,mzgol/eslint,scriptdaemon/eslint,Trott/eslint,ABaldwinHunter/eslint,BenoitZugmeyer/eslint,Gillespie59/eslint,Aladdin-ADD/eslint,kentcdodds/eslint,brgibson/eslint,platinumazure/eslint,DavidAnson/eslint,pvamshi/eslint,BenoitZugmeyer/eslint,ljharb/eslint,Moeriki/eslint