Added more info to stats command (#365)
Added more info to stats command (#365)

* Added an option for CLJS output directory and added language indicator to command loaded log

* Added compatibility with any language that compiles into JS and leaves its source files in the same directory as the JS files. The language(s) may be passed with the 'compiledLangs' Komada option.

* Changed Komada option name to 'compiledLang', for consistency.

* Changed logic to account for if no compiledLang passed

* Fixed bug with command loading message

* Changed to using fs-extra-promise and made loop async

* Added/improved compiled language compatability

* Added support for loading from outDir for monitors, inhibitors,
functions, providers, and events.
* Changed outDir to an env var, like clientDir.
* Moved some code to app.js that should be run before other things.

* Fixed loadFunctions.js; funcs is an object not map

* Fixed compiledLangs oversight that I can't believe I didn't notice before

* Made a small mistake; it made the bot crash on startup tho, lul

* Maybe fixed init messages

* Fixed pieces count

Fixed an issue with the counting of pieces (separating them according to
code language, that is) where function counts (possibly other types of
pieces, as well) would include some things that aren't functions (that
happen to also be stored in `client.funcs`).

Also, pieces counts are accurate now, since all promises are awaited.

* Turned piece.codeLang into a primitive, instead of a promise

* Allow reloading pieces from outDir

* Fixed codeLang bug & oversight in Loader class

Fixed bug where reloaded pieces' codeLangs were left as promises.
Added codeLangs to events.

* Added more info to stats command

* Adding node version because it's useful, both for devs and for helping
us help devs troubleshoot

* I missed a file

eslachance/komada,dirigeants/komada,dirigeants/komada