Explanations of all the (sometimes cryptic) error messages thrown by JSLint and JSHint